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 简单导航实现代码
Sep 11 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
Jul 11 Javascript
javascript中处理时间戳为日期格式的方法
Jan 02 Javascript
JS获取网页属性包括宽、高等等
Apr 03 Javascript
jQuery级联操作绑定事件实例
Sep 02 Javascript
2014最热门的JavaScript代码高亮插件推荐
Nov 25 Javascript
jQuery实现表格行上下移动和置顶效果
Jun 05 Javascript
简介JavaScript中valueOf()方法的使用
Jun 05 Javascript
浅谈JS中的bind方法与函数柯里化
Aug 10 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
Oct 14 Javascript
ES6新特性之Object的变化分析
Mar 31 Javascript
vue如何实现动态加载脚本
Feb 05 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
星际争霸秘籍
2020/03/04 星际争霸
关于尾递归的使用详解
2013/05/02 PHP
php中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
2015/12/28 PHP
PHP实现的多文件上传类及用法示例
2016/05/06 PHP
PHP+iframe图片上传实现即时刷新效果
2016/11/18 PHP
用jquery实现学校的校历(asp.net+jquery ui 1.72)
2010/01/01 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
2016/02/18 Javascript
如何高效率去掉js数组中的重复项
2016/04/12 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
5种JavaScript脚本加载的方式
2017/01/16 Javascript
利用Vue v-model实现一个自定义的表单组件
2017/04/27 Javascript
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
微信小程序switch组件使用详解
2018/01/31 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
2020/08/26 Javascript
详解 javascript对象创建模式
2020/10/30 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
简单谈谈Python中的几种常见的数据类型
2017/02/10 Python
Python扩展内置类型详解
2018/03/26 Python
django将数组传递给前台模板的方法
2019/08/06 Python
基于python实现FTP文件上传与下载操作(ftp&amp;sftp协议)
2020/04/01 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
Yahoo-PHP面试题1
2016/07/20 面试题
应届大学生自荐信格式
2013/09/21 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
夫妻吵架保证书
2015/05/08 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
浅谈JS的二进制家族
2021/05/09 Javascript