Vue.js父与子组件之间传参示例


Posted in Javascript onFebruary 28, 2017

例子:App.vue为父,引入componetA组件之后,则可以在template中使用标签(注意驼峰写法要改成componet-a写法,因为html对大小写不敏感,componenta与componentA对于它来说是一样的,不好区分,所以使用小写-小写这种写法)。而子组件componetA中,声明props参数'msgfromfa'之后,就可以收到父向子组件传的参数了。例子中将msgfromfa显示在<p>标签中。

App.vue中

<component-a msgfromfa="(Just Say U Love Me)"></component-a>
import componentA from './components/componentA'

export default {

new Vue({

components: {

componentA

}

})

}

componentA.vue中

<p>{{ msgfromfa }}</p>
export default {

props: ['msgfromfa']

}

父向子组件传参(.$broadcast)

用法:vm.$broadcast( event, […args] )广播事件,通知给当前实例的全部后代。因为后代有多个枝杈,事件将沿着各“路径”通知。

例子:父组件App.vue中<input>绑定了键盘事件,回车触发addNew方法,广播事件”onAddnew”,并传参this.items。子组件componentA中,注册”onAddnew”事件,打印收到的参数items。

App.vue中

<div id="app">
<input v-model="newItem" @keyup.enter="addNew"/>
</div>
import componentA from './components/componentA'
export default {
new Vue({
methods: {
addNew: function() {
this.$broadcast('onAddnew', this.items)
}
}
})
}

componentA.vue中

import componentA from './components/componentA'

export default {

events: {

'onAddnew': function(items){

console.log(items)

}

}

}

子组件向父传参(.$emit)

用法:vm.$emit( event, […args] ),触发当前实例上的事件。附加参数都会传给监听器回调。

例子:App.vue中component-a绑定了自定义事件”child-say”。子组件componentA中,单击按钮后触发”child-say”事件,并传参msg给父组件。父组件中listenToMyBoy方法把msg赋值给childWords,显示在<p>标签中。
App.vue中

<p>Do you like me? {{childWords}}</p>
<component-a msgfromfa="(Just Say U Love Me)" v-on:child-say="listenToMyBoy"></component-a>
import componentA from './components/componentA'
export default {
new Vue({
data: function () {
return {
childWords: ""
}
},
components: {
componentA
},
methods: {
listenToMyBoy: function (msg){
this.childWords = msg
}
}
})
}

componentA.vue中

<button v-on:click="onClickMe">like!</button>
import componentA from './components/componentA'
export default {
data: function () {
return {
msg: 'I like you!'
}
},
methods: {
onClickMe: function(){
this.$emit('child-say',this.msg);
}
}
}

子组件向父传参(.$dispatch)

用法:vm.$dispatch( event, […args] ),派发事件,首先在实例上触发它,然后沿着父链向上冒泡在触发一个监听器后停止。

例子:App.vue中events中注册”child-say”事件。子组件componentA中,单击按钮后触发”child-say”事件,并传参msg给父组件。父组件中”child-say”方法把msg赋值给childWords,显示在<p>标签中。

App.vue中

<p>Do you like me? {{childWords}}</p>
<component-a msgfromfa="(Just Say U Love Me)"></component-a>
import componentA from './components/componentA'
export default {
new Vue({
events: {
'child-say' : function(msg){
this.childWords = msg
}
}
})
}

componentA.vue中

<button v-on:click="onClickMe">like!</button>
import componentA from './components/componentA'
export default {
data: function () {
return {
msg: 'I like you!'
}
},
methods: {
onClickMe: function(){
this.$dispatch('child-say',this.msg);
}
}
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript html 静态页面传参数
Apr 10 Javascript
javascript中最常用的继承模式 组合继承
Aug 12 Javascript
JavaScript内核之基本概念
Oct 21 Javascript
jquery入门—数据删除与隔行变色以及图片预览
Jan 07 Javascript
无限树Jquery插件zTree的常用功能特性总结
Sep 11 Javascript
Javascript类型系统之String字符串类型详解
Jun 21 Javascript
jsonp跨域请求详解
Jul 13 Javascript
angularjs select 赋值 ng-options配置方法
Feb 28 Javascript
vue-cli3项目展示本地Markdown文件的方法
Jun 07 Javascript
JS中的算法与数据结构之字典(Dictionary)实例详解
Aug 20 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
Feb 15 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
Jul 01 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
Feb 28 #Javascript
JS对象创建的几种方式整理
Feb 28 #Javascript
js仿淘宝评价评分功能
Feb 28 #Javascript
jQuery布局组件EasyUI Layout使用方法详解
Feb 28 #Javascript
three.js绘制地球、飞机与轨迹的效果示例
Feb 28 #Javascript
JavaScript Uploadify文件上传实例
Feb 28 #Javascript
微信小程序 ecshop地址三级联动实现实例代码
Feb 28 #Javascript
You might like
php miniBB中文乱码问题解决方法
2008/11/25 PHP
PHP 代码规范小结
2012/03/08 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
js 多浏览器分别判断代码
2010/04/01 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
JavaScript地图拖动功能SpryMap的简单实现
2013/07/17 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
jqGrid读取选择的多行的某个属性代码
2014/05/18 Javascript
初步认识JavaScript函数库jQuery
2015/06/18 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
JavaScript数组方法大全(推荐)
2016/07/05 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
浅谈Angular4实现热加载开发旅程
2017/09/08 Javascript
SeaJS中use函数用法实例分析
2017/10/10 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
python通过正则查找微博@(at)用户的方法
2015/03/13 Python
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
利用python实现冒泡排序算法实例代码
2019/12/01 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
CSS3实现王者荣耀匹配人员加载页面的方法
2019/04/16 HTML / CSS
菲律宾旅游网站:Expedia菲律宾
2017/10/11 全球购物
入党申请自荐书范文
2014/02/11 职场文书
市场开发与营销专业求职信范文
2014/05/01 职场文书
中职毕业生自我鉴定范文(3篇)
2014/09/28 职场文书
2014年服务员工作总结
2014/11/18 职场文书
农村结婚典礼主持词
2015/06/29 职场文书
教研活动主持词
2015/07/03 职场文书
2016校本研修培训心得体会
2016/01/08 职场文书
创业计划书之美甲店
2019/09/20 职场文书