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 相关文章推荐
ExtJs之带图片的下拉列表框插件
Mar 04 Javascript
Jquery写一个鼠标拖动效果实现原理与代码
Dec 24 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
Mar 28 Javascript
node.js中的fs.readdirSync方法使用说明
Dec 17 Javascript
js中获取键盘事件的简单实现方法
Oct 10 Javascript
javascript创建对象的3种方法
Nov 02 Javascript
javascript自执行函数
Feb 10 Javascript
vue多种弹框的弹出形式的示例代码
Sep 18 Javascript
利用Console来Debug的10个高级技巧汇总
Mar 26 Javascript
从零开始搭建vue移动端项目到上线的步骤
Oct 15 Javascript
Promise扫盲贴
Jun 24 Javascript
Vue.js watch监视属性知识点总结
Nov 11 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 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
PHP编写daemon process 实例详解
2016/11/13 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
百度留言本js 大家可以参考下
2009/10/13 Javascript
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
datagrid框架的删除添加与修改
2013/04/08 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
Bootstrap模块dropdown实现下拉框响应
2016/05/22 Javascript
Jquery获取当前城市的天气信息
2016/08/05 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
2017/06/22 jQuery
微信小程序progress组件使用详解
2018/01/31 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
用python实现面向对像的ASP程序实例
2014/11/10 Python
Python 3.x 新特性及10大变化
2015/06/12 Python
python在html中插入简单的代码并加上时间戳的方法
2018/10/16 Python
PyTorch搭建一维线性回归模型(二)
2019/05/22 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
Python绘制组合图的示例
2020/09/18 Python
波兰珠宝品牌:YES
2019/08/09 全球购物
莫斯科购买书籍网站:Book24
2020/01/12 全球购物
泰国第一在线超市:Tops
2021/02/13 全球购物
Java程序员综合测试题
2014/04/25 面试题
网络工程师的自我评价
2013/10/02 职场文书
体育教育专业毕业生自荐信
2013/11/15 职场文书
新闻学专业个人求职信写作
2014/02/04 职场文书
自我鉴定书
2014/03/24 职场文书
优秀教导主任事迹材料
2014/05/09 职场文书
给校长的建议书100字
2014/05/16 职场文书
排球赛新闻稿
2015/07/17 职场文书
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL