最近项目需要,从父组件传值到子组件,子组件通过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中的值,也并没有改变过,那么以上的说法不成立了)

Logo

前往低代码交流专区

更多推荐