vue组件学习教程

在学习vue时,组件学习比较吃力,尤其是组件间的通信,所以总结一下,官方文档的组件部分。

注册组件

全局组件

语法如下,组件模板需要使用一个标签包裹起来。data必须是一个方法

rush:js;"> Vue.component('component-name',{ template:'

标题

作者信息
',data(){ return{ message:'组件的属性' } },methods:{

}
})

局部组件

rush:js;"> var com = { template:'

标题

作者信息
',methods:{

}
}

new Vue({
components:{
'compontent-name':com
}
})

组件通信

prop将父组件数据传给子组件

rush:xhtml;">
rush:js;">

利用子组件的props选项,父组件可以向子组件传递数据,但是子组件不能求改父组件的数据。

非父子组件通信

需要使用一个空的Vue实例来管理

rush:xhtml;">
rush:js;"> var bus = new Vue();

var coma = {
template: '<p @click="send">{{adata}}

',data(){
return {
adata: 'a的数据'
}
},methods:{
send(){
// 触发这一事件
bus.$emit('data-to-b',this.adata);
}
}

};

var comb= {
template: '

{{bdata}}

',data(){
return {
bdata: 'b的数据'
}
},mounted(){
// 监听事件,获取a组件的数据,进行相关操作
bus.$on('data-to-b',function (msg) {
this.bdata = msg;
}.bind(this));
}
};

new Vue({
el:'#app',components: {
'com-a': coma,'com-b': comb
}
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

相关文章

可以通过min-width属性来设置el-table-column的最小宽度。以...
yarn dev,当文件变动后,会自动重启。 yanr start不会自动重...
ref 用于创建一个对值的响应式引用。这个值可以是原始值(如...
通过修改 getWK005 函数来实现这一点。这里的 query 参数就是...
&lt;el-form-item label=&quot;入库类型&quot; ...
API 变动 样式类名变化: 一些组件的样式类名有所变动,可能需...