写在前面:

1.父组件的data写法与子组件的data写法不同

//父组件
data:{
//对象形式
} //子组件
data:function(){
return {
//函数形式
}
}

2.引用子组件遵循

  • 引入组件
  • components里定义使用
  • 如果有通信,需要在子组件的props注册

以下实例全部使用以下模板

<div id="app">
//父组件
<p>{{total}}</p>
<mime @increment1="incrementTotal" ref="child" :num-a="total" num-s="total"></mime> <button type="button" @click="clickref">调用子组件</button>
</div> //子组件
<template id="myInput">
<button @click="add">{{counter}}</button>
</template>
<script>
new Vue({
el:'#app',
data :{
total: 0
},
methods:{
incrementTotal : function(){ },
clickref:function(){ }
},
components:{
'mime' :{
template:'#myInput',
data : function(){
return{
counter : 0
}
},
props:['numA','numS'],
methods:{
add : function(){ }
}
}
}
});
</script>

1.父子通信 之 静态数据

如果只是传单一的字符串

<mime num-s="total"></mime>

....

props:['numS'] // numS  为字符串 total

这样子组件的numS一直为total。但这种太不灵活

2.父子通信 之 动态数据

父组件的数据将会动态传递给子组件

<input v-model="total">
<mime :num-a="total"></mime> .... //props:['numA'] props:{
numA:[ String , Number ] //允许字符串 数字
}

这时当input输入什么,子组件的numA将会得到什么

3.父子通信 之 子调用父

{{total}}
<mime @increment="incrementTotal"></mime> <template id="myInput">
<button @click="add">{{counter}}</button>
</template> ...
<script>
....
data:{
tatal: 0
},
methods:{
incrementTotal:function(){
this.total +=1;
}
},
components:{
data : function(){
return:{
counter : 0
}
},
methods : {
add : function(){
this.counter +=1;
this.$emit('increment'); //子组件通过 $emit触发父组件的方法 increment 还可以传参 this.$emit('increment' ,this.counter);
}
}
}
</script>

子组件执行add --> 触发$emit --> 触发父组件increment --> 执行 incrementTotal 方法

4.父子通信 之 父调用子

<mime ref="child"></mime>
<button type="button" @click="clickref">调用子组件</button> <template id="myInput">
<button @click="add">{{counter}}</button>
</template> ...
<script>
.... methods:{
clickref:function(){
var child = this.$refs.child; //获取子组件实例
child.counter = 45; //改变子组件数据
child.add(11); //调用子组件方法 add
}
},
components:{
data : function(){
return:{
counter : 0
}
},
methods : {
add : function(num){
this.counter +=1;
console.log('接受父组件的值:',num) //num为11
}
}
}
</script>

通过在子组件上引用ref,从而获得子组件实例,进行相应操作。

5.子组件与子组件通信

官网:在简单的场景下,使用一个空的 Vue 实例作为中央事件总线

var bus = new Vue()
// 触发组件 A 中的事件
bus.$emit('id-selected', 1)
// 在组件 B 创建的钩子中监听事件
bus.$on('id-selected', function (id) {
// ...
})

但是这样实在太麻烦了,建议使用vuex

 

vue2.0--组件通信(非vuex法)的更多相关文章

  1. vue2.0组件通信各种情况总结与实例分析

    Props在vue组件中各种角色总结 在Vue中组件是实现模块化开发的主要内容,而组件的通信更是vue数据驱动的灵魂,现就四种主要情况总结如下: 使用props传递数据---组件内部 //html & ...

  2. vue2.0 组件通信

    组件通信: 子组件要想拿到父组件数据 props 子组件不允许直接给父级的数据, 赋值操作如果想更改,父组件每次穿一个对象给子组件, 对象之间引用. 例子: <script> window ...

  3. vue2.0组件通信小总结

    1.父组件->子组件 父组件 <parent> <child :child-msg="msg"></child>//这里必须要用 - 代替 ...

  4. 通信vue2.0组件

    vue2.0组件通信各种情况总结与实例分析   Props在vue组件中各种角色总结 在Vue中组件是实现模块化开发的主要内容,而组件的通信更是vue数据驱动的灵魂,现就四种主要情况总结如下: 使用p ...

  5. vue2.0组件库

    UI组件 element - 饿了么出品的Vue2的web UI工具套件 Vux - 基于Vue和WeUI的组件库 mint-ui - Vue 2的移动UI元素 iview - 基于 Vuejs 的开 ...

  6. vue2.X 组件通信($emit $on props)

    1.index.html  子组件直接修改父组件的数据 组件通讯: vm.$emit(); vm.$on(); 父组件和子组件: 子组件想要拿到父组件数据: 通过 props 之前,子组件可以更改父组 ...

  7. vue2.0组件传值

    props down   emit up 嘿嘿    如果是第一次接触vue2.0组件传值的肯定很疑惑,这是什么意思(大神总结的,我也就是拿来用用) “down”—>指的是下的意思,即父组件向子 ...

  8. Vue2.0组件之间通信

    Vue中组件这个特性让不少前端er非常喜欢,我自己也是其中之一,它让前端的组件式开发更加合理和简单.笔者之前有写过一篇Vue2.0子父组件通信,这次我们就来聊一聊平级组件之间的通信. 首先我们先搭好开 ...

  9. Vue2.0组件之间通信(转载)

    Vue中组件这个特性让不少前端er非常喜欢,我自己也是其中之一,它让前端的组件式开发更加合理和简单.笔者之前有写过一篇Vue2.0子父组件通信,这次我们就来聊一聊平级组件之间的通信. 首先我们先搭好开 ...

随机推荐

  1. Tree and Permutation dfs hdu 6446

    Problem Description There are N vertices connected by N−1 edges, each edge has its own length.The se ...

  2. 打开cmd窗口新技巧get

    1.在当前目录下,按住shift键+点击右键,选择在此处打开命令窗口 很多时候我们需要打开命令行然后进入到相应目录进行一些操作. 常规的做法是: Win+R打开运行窗口 输入"cmd&quo ...

  3. bzoj1529 [POI2005]ska Piggy banks 并查集

    [POI2005]ska Piggy banks Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1508  Solved: 763[Submit][Sta ...

  4. sql service 事务与锁

    了解事务和锁 事务:保持逻辑数据一致性与可恢复性,必不可少的利器. 锁:多用户访问同一数据库资源时,对访问的先后次序权限管理的一种机制,没有他事务或许将会一塌糊涂,不能保证数据的安全正确读写. 死锁: ...

  5. mysql 添加字段 修改字段为not null

    添加一个字段 ALTER TABLE jw_user_role ADD zk_env VARCHAR(16); 修改字段为not null,还要把原来的类型也写出来 ALTER TABLE jw_us ...

  6. 基于Mysql数据库亿级数据下的分库分表方案

    移动互联网时代,海量的用户数据每天都在产生,基于用户使用数据的用户行为分析等这样的分析,都需要依靠数据都统计和分析,当数据量小时,问题没有暴露出来,数据库方面的优化显得不太重要,一旦数据量越来越大时, ...

  7. NOIP2006 数列

    codevs 1141 数列 http://codevs.cn/problem/1141/ 2006年NOIP全国联赛普及组  时间限制: 1 s  空间限制: 128000 KB     题目描述  ...

  8. Proxmap Sort

    这个排序是桶排序和基数排序的改进,理解了前两者,这个排序很容易理解 先回忆下桶排序是怎么回事,它与桶的区别在于入桶规则,桶排序里是1入1号桶,2入2号桶 这个排序把数字分区了,然后给出一个所谓的键,例 ...

  9. 在vsagent上运行.dll录制文件。

    https://msdn.microsoft.com/en-us/library/ms182487.aspx 1. cd C:\Program Files (x86)\Microsoft Visual ...

  10. 【BZOJ1038】【ZJOI2008】瞭望塔 [模拟退火]

    瞭望塔 Time Limit: 10 Sec  Memory Limit: 162 MB[Submit][Status][Discuss] Description 致力于建设全国示范和谐小村庄的H村村 ...