vue组件通信

1.组件传值

父传子 props

子传父   (子)通过事件 this.$emit('父事件',参数) ; 
        (父)父事件(){ this.参数 = 参数 }

2.非父子组件

单独创建一个vue实例 bus,然后Vue.prototype.$bus = Bus; 暴露到全局

组件1触发:this.$bus.emit('事件名', 参数);

组件2接收: this.$bus.on('事件名',()=>{ this.参数= 参数}); 
可以在created中开始监听,在beforeDestroy中off取消

3.vuex的使用

var store = new Vuex.Store({

    state:{

        初始化状态值,如果没有data,以状态值为准

    },

    getters:{

        获取状态值,可以通过方法处理state

    },

    mutations:{

        改变状态值的方法,里面的方法必须是同步函数

    },

    actions:{

        用来触发mutations里面的方法

        increment(context){

            context.commit('方法名',参数)

        }

        也可以通过promise实现异步

    }

})

4.组件内部

export default {

    components:{ ...组件名 },

    props:{ 父组件传参 },

    data(){

        return {

            注册数据,默认数据

        }

    },

    methods:{

        组件内部的方法

        方法1(){ },

        方法2(){ },

    },

    computed:{

        实现某一属性的实时计算

        可以存储在缓存中,不需要每次都重新渲染

    },

    beforeCreate(){

        组件实例刚被创建,组件属性计算之前

    },

    ------监控data的变化以及vue内部初始化事件------

    created(){

        组件实例创建完成,属性已绑定,但Dom未生成

    },

    -----检测是否el挂载,判断模板参数

    beforeMount(){

        组件渲染在Dom上之前

    },

    -----dom渲染-------

    mounted(){

        组件渲染在Dom上之后

        在这里调用数据请求的方法获取数据,

        在这里可以操作实体dom对象

    },

    ----程序实时检测数据变化----

    beforeUpdate(){

        组件更新之前

    },

    -------实时更新DOM------

    updated(){

        组件更新后

    },

    beforeDestory(){

        组件销毁前

        这里可以取消事件的监听

    },

    destoryed(){

        组件销毁完成

    },

    watched:{

        监听某一属性值的变化

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值