vue组件间通信
来源:互联网 发布:淘宝网购物女羽绒服 编辑:程序博客网 时间:2024/05/22 13:24
随着vue等框架盛行,组件开发已然成为一种趋势,组件开发中我们经常遇到的就是父子组件通信了。下面简单介绍下vue中父子组件如何通信:
一、使用props传递数据
组件实例的作用域是孤立的。这意味着不能 (也不应该) 在子组件的模板内直接引用父组件的数据。要让子组件使用父组件的数据,我们需要通过子组件的 props 选项。
子组件要显式地用 props 选项声明它期待获得的数据:
<template> <input class="el-input-money" :value="currentValue" @blur="handleBlur" @focus="handleFocus" @input="handleInput" @change.native='true' :disabled="disabled" :size="size" :max="max" :min="min" :decimalPlaces="decimalPlaces" :placeholder="placeholder" ref="input"></input></template><script>export default { props: { max: { type: [Number, Function], default: Infinity, }, min: { type: [Number, Function], default: -Infinity, }, value: { type: [Number, String], default: '0.00', }, decimalPlaces: { type: Number, default: 2, }, placeholder: String, disabled: Boolean, size: String, } } } </script>
父组件中我们可以这样向如上子组件传递数据
<v-moneyInput v-model='hwData.A3' :decimalPlaces="4" ref='A3'></v-moneyInput>
这样我们就将4传递到子组件中了。
二、事件通信
还有一种常用的通信手段便是通过事件了。
1、子组件通知父组件
- 使用
在子组件中,我们可以通过
比如在子组件某个方法中:
this.$emit('deleteFileEvt',fileKey);
在父组件中:
<v-fileupload :params='item' @completeUploadEvt='saveFbzlxxWithoutImageData' @deleteFileEvt='deleteFile' :useDefaultTitle='false' :uploadAddr="'/api/dzzl/upload?filepath=/'" :ref='item.fbzl_dm'></v-fileupload>
可以看到我们用@deleteFileEvt=’deleteFile’监听了deleteFileEvt事件,deleteFile函数处理:
deleteFile(fileKey) { let self = this; this.saveFileArr.map((index, item) => { if (item == fileKey) { self.saveFileArr.splice(index, 1); return false; } }) }
2、父组件调用子组件方法
说完了子组件通知父组件,自然也有父组件需要调用子组件方法的时候:
<v-moneyInput v-model='hwData.A2' ref='A2'></v-moneyInput>
如上是父组件中的子组件,通过给一个ref属性,然后我们可以在父组件的方法中通过this.refs.A2.childMethod()调用子组件的childMethod方法。
三、非父子组件通信
非父子组件通信的需求我们可能也会遇到,但我还没遇到过。可以参考vue官网非父子组件通信
还有一种通信手段就是我们的vuex
vuex的用法请参考官网vuex
阅读全文
0 0
- Vue组件间通信
- vue组件间通信
- vue组件间通信
- Vue组件间通信
- vue的组件间通信
- Vue组件间的通信
- Vue 组件间通信实例
- Vue组件间通信方式
- vue组件及组件间通信
- Vue 父子组件、组件间通信
- 使用bus实现Vue组件间通信
- 浅谈Vue组件间的通信
- Vue之父子兄弟组件间通信
- vue 父子组件通信
- Vue组件通信
- vue父子组件通信
- Vue父子组件通信
- Vue父子组件通信
- 1036:自由落体问题
- WebSocket学习总结(1)——Java后端WebSocket的Tomcat实现
- 算法--粒子群算法PSO的介绍
- 如何在其他线程中修改主UI属性及对象元素特性
- linux ubuntu ftp配置与实验
- vue组件间通信
- Oralce增量同步方案系列1-方案选型
- codeforces851C. Five Dimensional Points(暴力/思维)
- Redis-Jedis操作
- IP地址、子网掩码、网络号、主机号、网络地址、主机地址
- 导入已经存在的java工程(非maven)
- linux下无法识别u盘 因为U盘在使用就拔掉U盘
- 【莫队算法】小z的袜子(入门)
- Largest Point