美文网首页
Vue组件间的通信

Vue组件间的通信

作者: _imp_ | 来源:发表于2017-12-15 13:45 被阅读7次

    父组件向子组件通信

    第一步,引用子组件的时候传入数据

    new Vue({
        el: "#app",
        data: {
            count: 0,
            fatherlist: ["武汉", "深圳", "广州"]
        }
    })
    
    <custom-select :list="fatherlist">
        <div>子组件</div>
    </custom-select>
    

    第二步,在子组件中显示声明拥有该属性

    props: {
        list: {
            type: Array     // 定义属性的类型,多类型用[], 如[String, Number]
            // default: [],    // 默认值
            // required: true     //必传参数
            // validator(value){    //验证规则
            //     return value.length > 0;
            // }
        }
    }
    

    第三步,子组件使用数据

    <select>
        <option v-for="item in list">{{ item }}</option>
    </select>
    

    子组件向父组件通信

    第一步,父组件定义执行方法

    methods: {
        countHandle(){
            console.log("子组件点击了");
        }
    }
    

    第二步,在子组件中绑定事件

    <custom-select :list="fatherlist" @increment-click="countHandle"></custom-select>
    

    第三步,在子组件中触发事件

    <input type="button" value="改变count的值" @click="changeCount"/>
    
    methods: {
        changeCount(){
            // 通知父组件执行事件
            this.$emit("increment-click");          
        }
    }
    

    相关文章

      网友评论

          本文标题:Vue组件间的通信

          本文链接:https://www.haomeiwen.com/subject/srxdwxtx.html