vue之组件通信
vue组件通信一般分为以下几种情况:
1、父子组件通信;
2、兄弟组件通信;
3、跨多层级组件通信;
一、父子通信
父组件通过props传递数据给子组件,子组件通过emit发送事件传递数据给父组件。
父组件和子组件通信
父组件如下:
<template>
<div class="parent">
<div id="app">
<!-- 利用v-bind绑定message,即子组件中props需要写入的参数 -->
<!-- parentMsg即数据中的键名 -->
<child v-bind:message="parentMsg"></child>
</div>
</div>
</template> <script>
import child from './components/Child'
export default {
name: "parent",
components: {
child
},
data(){
return{
parentMsg:"hello,child"
}
}
}
</script>
子组件如下:
<template>
<div class="child">
<h2>child子组件部分</h2>
<p>{{message}}</p>
</div>
</template> <script>
export default {
name: "child",
props : ['message'],//子组件通过props接收参数,message即父组件中绑定的属性message
} </script>
子组件接收的方法有三种方式:
第一种,直接接收:
props: ['childCom']
第二种,已对象的形式设置接收类型:
props: {
childCom: String //这里指定了字符串类型,如果类型不一致则会警告
}
第三种,已对象的形式设置接收类型和默认值:
props: {
childCom: {
type: String,
default: 'sichaoyun'
}
}
子组件和父组件通信
子组件代码:

父组件代码:

兄弟组件通信
兄弟组件也是使用$emit('事件名称,'需要传递的数据'),作为发送数据的一方和$on(事件名称",'回调函数') 作为接收数据的一方。
首先在scr文件夹下,新建一个文件event.js,然后在里面新建一个vue实例。这个实例的作用就是作为兄弟组件间的桥梁,也就是中央事件中线。


然后建两个兄弟组件,组件代码分别如下:
兄弟组件一:

兄弟组件二:

接着将这两个组件引入到需要调用的组件里面,这里用app.vue为例。
app.vue文件代码如下:

跨多层次组件通信
这个是在Vue 2.2版本新增的API provide / inject 虽然文档中不推荐直接在业务中使用,但是如果用得好的话,还是很有用的。
假设有父组件 A,然后有一个跨多层级的子组件 B

vue之组件通信的更多相关文章
- Vue 兄弟组件通信(不使用Vuex)
Vue 兄弟组件通信(不使用Vuex) 项目中,我们经常会遇到兄弟组件通信的情况.在大型项目中我们可以通过引入vuex轻松管理各组件之间通信问题,但在一些小型的项目中,我们就没有必要去引入vuex.下 ...
- Vue兄弟组件通信
Vue兄弟组件通信之借助中央事件总线 下载链接:https://www.yinxiangit.com 其实要实现兄弟组件通信,就算是通过父子组件通信的方式也是可以达到的,如 子 ——>父——&g ...
- Vue父子组件通信(父级向子级传递数据、子级向父级传递数据、Vue父子组件存储到data数据的访问)
Vue父子组件通信(父级向子级传递数据.子级向父级传递数据.Vue父子组件存储到data数据的访问) 一.父级向子级传递数据[Prop]: ● Prop:子组件在自身标签上,使用自定义的属性来接收外界 ...
- vue 父子组件通信
算是初学vue,整理一下父子组件通信笔记. 父组件通过 prop 给子组件下发数据,子组件通过事件给父组件发送消息. 一.父组件向子组件下发数据: 1.在子组件中显式地用props选项声明它预期的数据 ...
- vue 父子组件通信props/emit
props 1.父组件传递数据给子组件 父组件: <parent> <child :childMsg="msg"></child>//这里必须要 ...
- vue中组件通信
组件的通信 1. 父子组件通信 案例: //父子组件通信思路 // 1 将父组件的数据传给子组件 在子组件上自定义单项数据绑定 // 2 子组件用props 接受自定义的那个:号属性 Vue.co ...
- vue父子组件通信高级用法
vue项目的一大亮点就是组件化.使用组件可以极大地提高项目中代码的复用率,减少代码量.但是使用组件最大的难点就是父子组件之间的通信. 子通信父 父组件 <template> <div ...
- vue 父子组件通信详解
这是一篇详细讲解vue父子组件之间通信的文章,初始学习vue的时候,总是搞不清楚几个情况 通过props在父子组件传值时,v-bind:data="data",props接收的到底 ...
- vue学习指南:第七篇(详细) - Vue的 组件通信
Vue 的 父传子 子传父 一.父组件向子组件传值: 父传子 把需要的数据 传递给 子组件,以数据绑定(v-bind)的形式,传递到子组件内部,供子组件使用 缩写是(:) 1.创建子组件,在src/ ...
随机推荐
- 超级简单POI导出Excel实战
在一般的生产管理系统都会将数据通过页面导出到Excel,这里以Java为例通过第三方开源poi进行对Excel的操作,具体操作如下 1.引入jar包依赖 这里我以maven的方式引入jar包,具体依赖 ...
- C++ 工程师养成 每日一题third (子数列排序)
题目: 定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的.牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数 ...
- php 函数篇
1.array_values($data); 注:将关联数组转化为索引数组 <?php $a=array("Name"=>"Bill"," ...
- 4. Spark Streaming解析
4.1 初始化StreamingContext import org.apache.spark._ import org.apache.spark.streaming._ val conf = new ...
- Html设置问题(设置浏览器上面的图标,移动设备上面页面保存为图标)
最近开发了一个新的项目,项目完成之后:要求把页面在移动设备上面保存为图标,通过图标直接进入系统入口(这样看着就想APP一样):刚开始通过百度直接设置了,发现有两个问题,第一.图标直接是页面的截图:第二 ...
- lcd12864菜单
最近一段时间学习了一下lcd12864屏幕的驱动(本人使用的是带字库的st7920驱动芯片). 1.该屏幕可以是串行驱动,或者并行驱动. 2.该屏幕的显示分为2部分,文字显示区DDRAM,图像显示区G ...
- 简单端口映射、转发、重定向工具-Rinetd
一.简介 Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具.Rinetd是单一过程的服务器,它处理任何数量的连接到在配置文件etc/rinetd中指定的 ...
- 2、在NET中实现多线程
1.System.Threading命名空间 System.Threading命名空间提供了使得可以多线程编程的类和接口 其中 (1)Thread类构成了C#多线程编程的支柱,他用于创建并控制线程 ( ...
- 在IOS10系统中无法定位问题
果是非https网页,在http协议下通过html5原生定位接口会返回错误,也就是无法正常定位到用户的具体位置,而已经支持https的网站则不会受影响. 目前提供的解决方案: 1.将网站的http设置 ...
- github上传本地项目代码
进入github首页,点击新项目new repository,如下图所示: 然后进入如下页面,填写信息: 最后点击Create repository,生成如下页面: 红色圈圈画的步骤,先点击Clone ...