vue.js中使用props down,events up的原则进行父子组件间的通信,先来记录下props down,看个例子:

<div id="app2">
<child message="hello!"></child>
</div> ... Vue.component('child', {
// 声明 props
props: ['message'],
// 就像 data 一样,prop 可以用在模板内
// 同样也可以在 vm 实例中像 “this.message” 这样使用
template: '<span>{{ message }}</span>'
}) new Vue({
el:"#app2"
});

以上定义了一个全局组件child,在app2的父级作用域中使用时,child组件定义了一个message属性,这样父组件在使用子组件的地方直接通过给child的message属性赋值即可将该值传递到子组件内部,从而输出模板内容:hello!,这里的“hello!”字符串是固定的,如果我们想传入的是app2作用域中的动态数值可以使用如下方式:

<div id="app2">
<child v-bind:message="parentMsg"></child>
<input v-model="parentMsg">
</div> ... Vue.component('child', {
// 声明 props
props: ['message'],
// 就像 data 一样,prop 可以用在模板内
// 同样也可以在 vm 实例中像 “this.message” 这样使用
template: '<span>{{ message }}</span>'
}) new Vue({
el:"#app2",
data:{
parentMsg:""
}
});

这样的话,子组件中的message值完全来自于父组件中的data.parentMsg,父组件的数据操作直接更新到子组件中。

再来看下events up的实例:

<div id="counter-event-example">
<p>{{ total }}</p>
<!-- 父组件可以在使用子组件的地方直接用 v-on 来监听子组件触发的事件,也就是这里的$.emit("increment")事件 -->
<button-counter v-on:increment2total="incrementTotal"></button-counter>
<button-counter v-on:increment2total="incrementTotal"></button-counter>
</div> ... Vue.component('button-counter', {
template: '<button v-on:click="increment">{{ counter }}</button>',
data: function () {
return {
counter: 0
}
},
methods: {
increment: function () {
this.counter += 1
this.$emit('increment2total',{"admin":"############"})
}
},
})
new Vue({
el: '#counter-event-example',
data: {
total: 0
},
methods: {
incrementTotal: function (value) {
alert(JSON.stringify(value));
this.total += 1
}
}
})

子组件模板中声明click事件,调用自身methods方法increment,increment里面通过$emit形式抛出一个事件到对应的子组件:on那里,查找到对应的父组件调用方法为incrementTotal,则直接调用该方法并传递参数。

关于vue.js后续一些学习心得体会均会在此处分享,一步步慢慢学吧。。。

关于vue.js父子组件数据传递的更多相关文章

  1. Vue.js 父子组件相互传递数据

    父传子 : 子组件接收变量名=父组件传递的数据 如::f-cmsg="fmsg"  注意驼峰问题 子传父:@子组件关联的方法名 = 父组件接受的方法名 如:@func=" ...

  2. 【Vue课堂】Vue.js 父子组件之间通信的十种方式

    这篇文章介绍了Vue.js 父子组件之间通信的十种方式,不管是初学者还是已经在用 Vue 的开发者都会有所收获.无可否认,现在无论大厂还是小厂都已经用上了 Vue.js 框架,简单易上手不说,教程详尽 ...

  3. React中父子组件数据传递

    Vue.js中父子组件数据传递:Props Down ,  Events Up Angular中父子组件数据传递:Props Down,  Events  Up React中父子组件数据传递:Prop ...

  4. Vue.js 父子组件之间通信的方式

    Vue 父子组件之间的同学有一下几种方式: 1. props 2. $emit -- 组件封装用的比较多 3. .sync -- 语法糖 4. $attrs 和 $listeners -- 组件封装用 ...

  5. vue2.0 父子组件数据传递prop

    vue的一个核心概念就是组件,而组件实例的作用域是孤立的,所以组件之间是不能直接引用其他组件的数据的.极端点举例来说,就是可以在同一个项目中,每一个组件内都可以定义相同名称的数据. data () { ...

  6. vue.js父子组件通信动态绑定

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  7. [vue]实现父子组件数据双向绑定

    参考: http://www.cnblogs.com/xxcanghai/p/6124699.html <!DOCTYPE html> <html lang="en&quo ...

  8. Vue.js父子组件如何传值 通俗易懂

    父子组件传值原理图 一般页面的视图App.vue应为这样 一.父组件向子组件传值 1.创建子组件,在src/components/文件夹下新建一个Child.vue 2.Child.vue的中创建pr ...

  9. vue.js 父子组件间 props 数据同步处理

    常见的场景: 在一个vue组件A中,使用另外一个组件B.A将自己的数据通过B组件的Props属性(propX)传递到B组件实例内部,B组件内部会修改该Props属性(propX)的值,此时在A组件内部 ...

随机推荐

  1. django系列6--Ajax03 ajax参数

    ajax的参数 data: 当前ajax请求要携带的数据,是一个json的object对象,ajax方法会默认的把它编码成某种格式 (urlencoded:?a=1&b=2)发送给服务端;此外 ...

  2. Redis安装与测试

    ①安装,直接安装版本为4.0.1 sudo apt-get install redis-server 启动: redis-server redis-cli 测试: ②新建Student表 ③查看zha ...

  3. kali linux之Audacity

    常用音频隐写工具 安装: sudo apt install audacity 初次打开的界面 看波的宽度分辨长短音 比较细的就是短音,代表".",比较粗的就是长音,代表" ...

  4. 利用C# CefSharp Python采集某网站简历并自动发送邀请短信

    以往爬虫没怎么研究过,最近有个需求,要从某网站采集敏感信息,稍稍考虑了一下,决定利用C# Winform和Python一起来解决这个事件. 整个解决方案不复杂:C#编写WinForm窗体,进行数据分析 ...

  5. JAVA 中的 StringBuilder 和 StringBuffer 适用的场景是什么?

    JAVA 中的 StringBuilder 和 StringBuffer 适用的场景是什么? 最简单的回答是,stringbuffer 基本没有适用场景,你应该在所有的情况下选择使用 stringbu ...

  6. ie 8及以下 前端cors ajax跨域须知

    http://www.cnblogs.com/xishuai/p/jquery-ajax-ie8-cors.html

  7. PHP中利用Redis管道加快执行

    $redis->muti($mode)->get($key)->set($key)->exec(): 既然是这样的, 也就是说当我要使用管道执行一万次操作的时候需要写一万次操作 ...

  8. 通过API方式查看Azure Sign-ins记录

    经确认,目前Sign-ins功能在中国区还没有开通.也没有相关的预计开通时间.您可以通过如下链接随时关注China Azure的最新公告:https://www.azure.cn/zh-cn/what ...

  9. leetcode-350-Intersection of Two Arrays II(求两个数组的交集)

    题目描述: Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, ...

  10. DataTables复杂表头

    工作上的需要,要做一个复杂的表头的DataTables thead如下 遇到的问题(详细问题可以浏览官网的答案 链接) 需自定义表头(thead),如果不自定义则会 Cannot read prope ...