vue2.0--组件通信(非vuex法)
写在前面:
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法)的更多相关文章
- vue2.0组件通信各种情况总结与实例分析
Props在vue组件中各种角色总结 在Vue中组件是实现模块化开发的主要内容,而组件的通信更是vue数据驱动的灵魂,现就四种主要情况总结如下: 使用props传递数据---组件内部 //html & ...
- vue2.0 组件通信
组件通信: 子组件要想拿到父组件数据 props 子组件不允许直接给父级的数据, 赋值操作如果想更改,父组件每次穿一个对象给子组件, 对象之间引用. 例子: <script> window ...
- vue2.0组件通信小总结
1.父组件->子组件 父组件 <parent> <child :child-msg="msg"></child>//这里必须要用 - 代替 ...
- 通信vue2.0组件
vue2.0组件通信各种情况总结与实例分析 Props在vue组件中各种角色总结 在Vue中组件是实现模块化开发的主要内容,而组件的通信更是vue数据驱动的灵魂,现就四种主要情况总结如下: 使用p ...
- vue2.0组件库
UI组件 element - 饿了么出品的Vue2的web UI工具套件 Vux - 基于Vue和WeUI的组件库 mint-ui - Vue 2的移动UI元素 iview - 基于 Vuejs 的开 ...
- vue2.X 组件通信($emit $on props)
1.index.html 子组件直接修改父组件的数据 组件通讯: vm.$emit(); vm.$on(); 父组件和子组件: 子组件想要拿到父组件数据: 通过 props 之前,子组件可以更改父组 ...
- vue2.0组件传值
props down emit up 嘿嘿 如果是第一次接触vue2.0组件传值的肯定很疑惑,这是什么意思(大神总结的,我也就是拿来用用) “down”—>指的是下的意思,即父组件向子 ...
- Vue2.0组件之间通信
Vue中组件这个特性让不少前端er非常喜欢,我自己也是其中之一,它让前端的组件式开发更加合理和简单.笔者之前有写过一篇Vue2.0子父组件通信,这次我们就来聊一聊平级组件之间的通信. 首先我们先搭好开 ...
- Vue2.0组件之间通信(转载)
Vue中组件这个特性让不少前端er非常喜欢,我自己也是其中之一,它让前端的组件式开发更加合理和简单.笔者之前有写过一篇Vue2.0子父组件通信,这次我们就来聊一聊平级组件之间的通信. 首先我们先搭好开 ...
随机推荐
- 蓝桥杯 最短路 spfa
问题描述 给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环).请你计算从1号点到其他点的最短路(顶点从1到n编号). 输入格式 第一行两个整数n, m. 接下来的m行,每行有三个 ...
- A星寻路算法-Mind&Hand(C++)
//注1:Mind & Hand,MIT校训,这里指的理解与实现(动脑也动手) //注2:博文分为两部分:(1)理解部分,为参考其他优秀博文的摘要梳理:(2)代码部分,是C++代码实现的,源码 ...
- lnmp git ruby sass 安装
1 cd .. 2 ls 3 cd mzx/ 4 ls 5 cd 桌面 6 cd lnmp1.4-full/ //到lnmp 的官网上下载后,根据官网的提示来安装lump 7 ls 8 install ...
- scrapy架构设计分析
scrapy是一个Python爬虫框架.我们自己用requests也能写爬虫(GET某个URL,然后Parse网页的内容),那么,问题来了,scrapy高明在哪些地方呢?下面就来讨论下这个话题,看看业 ...
- Python to list users in AWS
code import boto3 c1=boto3.client('iam') #list_users will be a dict users=c1.list_users() #transfer ...
- ZooKeeper观察者(十三)
观察者:扩展ZooKeeper而不影响写性能 尽管ZK运行地很好通过客户端直接连接来投票集群的成员,这个结构使它很难扩展出很多客户端.问题是当我们加入更多的投票成员时,写性能就会下降.这是因为一个写操 ...
- [USACO11FEB] Cow Line
https://www.luogu.org/problem/show?pid=3014 题目描述 The N (1 <= N <= 20) cows conveniently number ...
- 51Nod 1080
#include "bits/stdc++.h" using namespace std; #define LL long long #define INF 0x3f3f3f3f3 ...
- js 拖动滑块验证
备注:拖动滑块时尽量平移,chrome浏览器上没有卡顿情况,但是搜狗极速模式和360极速模式都遇到了卡顿,拖不动情况,应是浏览器内部对事件响应速度导致吧. JS代码: ;(function ($,wi ...
- 汕头市队赛 SRM19 字符题
从天上掉下来了个这样的问题: 有一个字符串 从中选出两个子串 A,B,求 A+B可以构成的不同串的个数. 还想知道,这么多个串中字典序最大的那一个. 某人捡到了这个问题,并把它扔给了你. [输入] 一 ...