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 实现checkbox全选,反选,全不选等功能代码(奇数)
Oct 24 Javascript
自动刷新网页,自动刷新当前页面,JS调用
Jun 24 Javascript
如何在JS中实现相互转换XML和JSON
Jul 19 Javascript
JavaScript实现左右下拉框动态增删示例
Mar 09 Javascript
jquery实现图片放大点击切换
Jun 06 jQuery
vue.js 上传图片实例代码
Jun 22 Javascript
详解swiper在vue中的应用(以3.0为例)
Sep 20 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
Dec 11 Javascript
node.js实现微信开发之获取用户授权
Mar 18 Javascript
vue进入页面时滚动条始终在底部代码实例
Mar 26 Javascript
使用layui的router来进行传参的实现方法
Sep 06 Javascript
vue实现一个矩形标记区域(rectangle marker)的方法
Oct 28 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
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
Dedecms V3.1 生成HTML速度的优化办法
2007/03/18 PHP
php计算程序运行时间的简单例子分享
2014/05/10 PHP
php获取Google机器人访问足迹的方法
2015/04/15 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
2018/04/04 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
THREE.JS入门教程(6)创建自己的全景图实现步骤
2013/01/25 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
2015/08/14 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
[45:25]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
用Python逐行分析文件方法
2019/01/28 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
2019/06/27 Python
python 简单的调用有道翻译
2020/11/25 Python
PatPat香港:婴童服饰和亲子全家装在线购物
2020/09/27 全球购物
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
工作个人的自我评价
2014/01/14 职场文书
奥利奥广告词
2014/03/20 职场文书
授权委托书怎么写
2014/09/25 职场文书
离婚起诉书范本
2015/05/18 职场文书
毕业典礼主持词
2015/06/29 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书
Python selenium绕过webdriver监测执行javascript
2022/04/12 Python
VUE递归树形实现多级列表
2022/07/15 Vue.js