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 相关文章推荐
Mootools 1.2教程 设置和获取样式表属性
Sep 15 Javascript
jquery插件 cluetip 关键词注释
Jan 12 Javascript
javascript dom代码应用 简单的相册[firefox only]
Jun 12 Javascript
jquery实现点击消失的代码
Mar 03 Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
Apr 10 Javascript
javascript实现超炫的向上滑行菜单实例
Aug 03 Javascript
json传值以及ajax接收详解
May 24 Javascript
AngularJS中的拦截器实例详解
Apr 07 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
Sep 22 Javascript
详解react native页面间传递数据的几种方式
Nov 07 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
May 07 Javascript
小程序外卖订单界面的示例代码
Dec 30 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 分页函数multi() discuz
2009/06/21 PHP
ThinkPHP 3.2 版本升级了哪些内容
2015/03/05 PHP
JS模拟面向对象全解(二、类型与赋值)
2011/07/13 Javascript
Javascript中call的两种用法实例
2013/12/13 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
Javascript函数式编程简单介绍
2015/10/11 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
bootstrap下拉菜单使用方法解析
2017/01/13 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
2017/02/19 Javascript
PM2自动部署代码步骤流程总结
2018/12/10 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
用原生JS实现爱奇艺首页导航栏代码实例
2019/09/19 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
总结Python编程中三条常用的技巧
2015/05/11 Python
关于python pyqt5安装失败问题的解决方法
2017/08/08 Python
python实现对excel进行数据剔除操作实例
2017/12/07 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
详解Python的循环结构知识点
2019/05/20 Python
Python中注释(多行注释和单行注释)的用法实例
2019/08/28 Python
pytorch标签转onehot形式实例
2020/01/02 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
python读取mysql数据绘制条形图
2020/03/25 Python
Django 解决由save方法引发的错误
2020/05/21 Python
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
味多美官网:蛋糕订购,100%使用天然奶油
2017/11/10 全球购物
爱他美官方海外旗舰店:Aptamil奶粉
2017/12/22 全球购物
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
会计专业推荐信
2013/10/29 职场文书
幼儿运动会邀请函
2014/01/17 职场文书
大专会计自我鉴定
2014/02/06 职场文书
火车的故事教学反思
2014/02/11 职场文书
保健品市场营销方案
2014/03/31 职场文书
2014年图书室工作总结
2014/12/09 职场文书