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 相关文章推荐
jquery png 透明解决方案(推荐)
Aug 21 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
Dec 14 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
Sep 22 Javascript
验证控件与Button的OnClientClick事件详细解析
Dec 04 Javascript
单元选择合并变色示例代码
May 26 Javascript
jquery实现倒计时效果
Dec 14 Javascript
js实现无缝滚动特效
Dec 20 Javascript
jQuery 3.0 的变化及使用方法
Feb 01 Javascript
javascript replace()第二个参数为函数时的参数用法
Dec 26 Javascript
vue使用xe-utils函数库的具体方法
Mar 06 Javascript
vue-router 源码实现前端路由的两种方式
Jul 02 Javascript
微信小程序使用GoEasy实现websocket实时通讯
May 19 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
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
2015/02/02 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
基于JQuery的cookie插件
2010/04/07 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
2013/09/29 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
2015/07/27 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
JS判断微信扫码的方法
2017/08/07 Javascript
AngularJS集合数据遍历显示的实例
2017/12/27 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
node实现分片下载的示例代码
2018/10/17 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
微信小程序wx.request的简单封装
2019/11/13 Javascript
[07:59]2014DOTA2叨叨刀塔 林熊猫称被邀请赛现场盛况震撼
2014/07/21 DOTA
Python中尝试多线程编程的一个简明例子
2015/04/07 Python
在Django的模板中使用认证数据的方法
2015/07/23 Python
Django中间件实现拦截器的方法
2018/06/01 Python
pyshp创建shp点文件的方法
2018/12/31 Python
OpenCV哈里斯(Harris)角点检测的实现
2020/01/15 Python
python日期与时间戳的各种转换示例
2020/02/12 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
金牌葡萄酒俱乐部:Gold Medal Wine Club
2017/11/02 全球购物
接口的多继承会带来哪些问题
2015/08/17 面试题
中医临床专业自我鉴定范文
2014/01/15 职场文书
书法比赛获奖感言
2014/02/10 职场文书
校园环保标语
2014/06/13 职场文书
离婚协议书的范本
2015/01/27 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
承诺书应该怎么写?
2019/09/10 职场文书