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 相关文章推荐
JS 实现双色表格实现代码
Nov 24 Javascript
关于URL中的特殊符号使用介绍
Nov 03 Javascript
js判断浏览器类型为ie6时不执行
Jun 15 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
Mar 17 Javascript
在JavaScript中正确引用bind方法的应用
May 11 Javascript
JavaScript中的函数(二)
Dec 23 Javascript
简单实现js悬浮导航效果
Feb 05 Javascript
如何在vue中使用ts的示例代码
Feb 28 Javascript
JavaScript实现的简单Tab点击切换功能示例
Jul 06 Javascript
微信小程序之onLaunch与onload异步问题详解
Mar 28 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
Jun 07 Javascript
Vue实现背景更换颜色操作
Jul 17 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 设计模式之 工厂模式
2008/12/19 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
2011/07/23 PHP
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
php下Memcached入门实例解析
2015/01/05 PHP
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
jquery 无限级联菜单案例分享
2013/03/26 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
2013/08/07 Javascript
Javascript四舍五入Math.round()与Math.pow()使用介绍
2013/12/27 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
Vue.js中extend选项和delimiters选项的比较
2017/07/17 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
使用json-server简单完成CRUD模拟后台数据的方法
2018/07/12 Javascript
nodejs微信开发之接入指南
2019/03/17 NodeJs
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
2020/06/01 Javascript
vue 实现setInterval 创建和销毁实例
2020/07/21 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
如何正确解决VuePress本地访问出现资源报错404的问题
2020/12/03 Vue.js
python3学习笔记之多进程分布式小例子
2018/02/13 Python
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
Python 实现文件打包、上传与校验的方法
2019/02/13 Python
Python3进制之间的转换代码实例
2019/08/24 Python
使用Django搭建web服务器的例子(最最正确的方式)
2019/08/29 Python
pytorch 归一化与反归一化实例
2019/12/31 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
获取邓白氏信用报告:Dun & Bradstreet
2019/01/22 全球购物
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
介绍一下Make? 为什么使用make
2016/07/31 面试题
2014年个人技术工作总结
2014/12/08 职场文书
2014年为民办实事工作总结
2014/12/20 职场文书
大雁塔导游词
2015/02/04 职场文书
中班下学期个人工作总结
2015/02/12 职场文书
java调用Restful接口的三种方法
2021/08/23 Java/Android
Redis批量生成数据的实现
2022/06/05 Redis