vue中父组件通过props传值给子组件,子组件中获取到props里面的值
最近项目需要,从父组件传值到子组件,子组件通过props获取父组件传过来的值在父组件定义要传值的属性://父组件定义要传的属性 :title="title"<dopic:item="item" v-for="(item, index) in DopicList" :key="index" :title="title" :typeList="typeList"></Topic>
·
最近项目需要,从父组件传值到子组件,子组件通过props获取父组件传过来的值
在父组件定义要传值的属性:
//父组件定义要传的属性 :title="title"
<dopic :item="item" v-for="(item, index) in DopicList" :key="index" :title="title" :typeList="typeList"></dopic>
//data中定义值
data(){
return{
title:"更多";
}
}
在子组件中接收:
//子组件用props接收
props: {
title:String, //如果是字符串就用String,如果是数字就用Number
}
这个title可以直接在页面中显示:
<div class="more" >{{title}}</div> //可以直接使用props里面的title值
如果想要在methods方法中拿来使用,则直接this.title拿值
注意:
通过这个方法传过来的值,在子组件mounted函数中如果直接去获取的话有可能会获取不到。因为此时父组件的值还没有传过来,但是如果你是写在methods中的方法中获取值的话,此时值已经传过来了,可以直接使用this.name获取到。
如果你想要在子组件的mounted()中获取传值的话最好做个延迟或者是监听,但是又有一点,为啥我在页面中使用{{name}}没有问题呢! 这就是vue的好处它是等到这个name值有变化的时候就会更新的。所以才会看到显示。(其实先是空然后值传过来了,就会加载上去。)
(注意:以上的这些说法是在父组件中改变过这个值,如果父组件中的这个值本就是在data中的值,也并没有改变过,那么以上的说法不成立了)
更多推荐
已为社区贡献2条内容
所有评论(0)