vue中\$refs、\$emit、$on的使用场景
1、$emit的使用场景
子组件调用父组件的方法并传递数据
注意:子组件标签中的时间也不区分大小写要用“-”隔开
子组件:
- <template>
- <button @click="emitEvent">点击我</button>
- </template>
- <script>
- export default {
- data() {
- return {
- msg: "我是子组件中的数据"
- }
- },
- methods: {
- emitEvent(){
- this.$emit('my-event', this.msg)
- //通过按钮的点击事件触发方法,然后用$emit触发一个my-event的自定义方法,传递this.msg数据。
- }
- }
- }
- </script>
父组件:
- <template>
- <div id="app">
- <child-a @my-event="getMyEvent"></child-a>
- <!--父组件中通过监测my-event事件执行一个方法,然后取到子组件中传递过来的值-->
- </div>
- </template>
- <script>
- import ChildA from './components/child.vue'
- export default {
- components: {
- ChildA
- },
- methods: {
- getMyEvent(msg){
- console.log('接收的数据--------->'+msg)//接收的数据--------->我是子组件中的数据
- }
- }
- }
- </script>
2、$refs的使用场景
父组件调用子组件的方法,可以传递数据
注意:子组件标签中的时间也不区分大小写要用“-”隔开
父组件:
- <template>
- <div id="app">
- <child-a ref="child"></child-a>
- <!--用ref给子组件起个名字-->
- <button @click="getMyEvent">点击父组件</button>
- </div>
- </template>
- <script>
- import ChildA from './components/child.vue'
- export default {
- components: {
- ChildA
- },
- data() {
- return {
- msg: "我是父组件中的数据"
- }
- },
- methods: {
- getMyEvent(){
- this.$refs.child.emitEvent(this.msg);
- //调用子组件的方法,child是上边ref起的名字,emitEvent是子组件的方法。
- }
- }
- }
- </script>
子组件:
- <template>
- <button>点击我</button>
- </template>
- <script>
- export default {
- methods: {
- emitEvent(msg){
- console.log('接收的数据--------->'+msg)//接收的数据--------->我是父组件中的数据
- }
- }
- }
- </script>
3、$on的使用场景
兄弟组件之间相互传递数据
- 首先创建一个vue的空白实例(兄弟间的桥梁)
- import Vue from 'vue'
- export default new Vue()
- 子组件 childa
- 发送方使用 $emit 自定义事件把数据带过去
- <template>
- <div>
- <span>A组件->{{msg}}</span>
- <input type="button" value="把a组件数据传给b" @click ="send">
- </div>
- </template>
- <script>
- import vmson from "../../../util/emptyVue"
- export default {
- data(){
- return {
- msg:{
- a:'111',
- b:'222'
- }
- }
- },
- methods:{
- send:function(){
- vmson.$emit("aevent",this.msg)
- }
- }
- }
- </script>
- 父组件:
- <template>
- <div>
- <childa></childa>
- <br />
- <childb></childb>
- </div>
- </template>
- <script>
- import childa from './childa.vue';
- import childb from './childb.vue';
- export default {
- components:{
- childa,
- childb
- },
- data(){
- return {
- msg:""
- }
- },
- methods:{
- }
- }
- </script>
————————————————
版权声明:本文为CSDN博主「骚φ(゜▽゜*)♪白」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chaochao466/article/details/82884966
vue中\$refs、\$emit、$on的使用场景的更多相关文章
- RxJS/Cycle.js 与 React/Vue 相比更适用于什么样的应用场景?
RxJS/Cycle.js 与 React/Vue 相比更适用于什么样的应用场景? RxJS/Cycle.js 与 React/Vue 相比更适用于什么样的应用场景? - 知乎 https://www ...
- 基于iscroll的better-scroll在vue中的使用
什么是 better-scroll better-scroll 是一个移动端滚动的解决方案,它是基于 iscroll 的重写,它和 iscroll 的主要区别在这里.better-scroll 也很强 ...
- better-scroll在vue中的应用
在我们日常的移动端项目开发中,处理滚动列表是再常见不过的需求了,以滴滴为例,可以是这样竖向滚动的列表,如图所示: 微信 —> 钱包—>滴滴出行”体验效果. 什么是 better-scrol ...
- 对vue中nextTick()的理解及使用场景说明
异步更新队列: 首先我们要对vue的数据更新有一定理解: vue是依靠数据驱动视图更新的,该更新的过程是异步的. 即:当侦听到你的数据发生变化时, Vue将开启一个队列(该队列被Vue官方称为异步更新 ...
- 函数防抖节流的理解及在Vue中的应用
防抖和节流的目的都是为了减少不必要的计算,不浪费资源,只在适合的时候再进行触发计算. 一.函数防抖 定义 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时:典型的案例就是输入搜索:输入 ...
- Vue中v-if和v-show的使用场景
1. 官方文档 https://cn.vuejs.org/v2/guide/conditional.html#v-if-vs-v-show 2. v-if 和 v-show 的区别 2.1 官方解释 ...
- 怎么在vue中使用less
最近使用vue2.0重构项目, 使用vue-cli脚手架构建, 采用webpack模板, 要在项目中使用less进行样式的编写 首先, 打开终端, 在当前项目目录下安装less npm install ...
- Vue中的$set的使用
在我们使用vue进行开发的过程中,可能会遇到一种情况:当生成vue实例后,当再次给数据赋值时,有时候并不会自动更新到视图上去: 当我们去看vue文档的时候,会发现有这么一句话:如果在实例创建之后添加新 ...
- vue中$refs的使用
vue中$refs获取组件或元素: 获取的元素就相当于是一个原生获取的元素,可以进行操作 this.$refs.ele.style.color = 'red
- mockjs在vue中的使用
mockjs在vue中的使用 安装好vue-cli后 加载模块: npm install mockjs 创建mock.js文件到src目录下的任一合适文件内新建mockjs.js,设置好拦截信息,设置 ...
随机推荐
- SharePoint 2019 里安装FlowPortal6.00c报错
环境: Windows Server 2016+SharePoint 2019 安装FlowPortal 6.00c后应用程序池FlowPortal.net 6.x AppPool自动停止. 事件查看 ...
- Android lifecyle 源码解剖 - gdutxiaoxu的博客(微信公众号 stormjun94)
版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/gdutxiaoxu/article/det ...
- color颜色大全
- C++标准库之string类型
stirng类型 简介: C++标准库提供的类型:string 长度可变的字符串 操作简单 仅为包含个人常用函数 头文件 string 类型与其它的标准库类型相同,都需要包含对应的头文件 #incl ...
- 第十六届浙江大学宁波理工学院程序设计大赛 E 雷顿女士与平衡树(并查集)
题意 链接:https://ac.nowcoder.com/acm/contest/2995/E来源:牛客网 卡特莉正在爬树,此时她又在树梢发现了一个谜题,为了不令她分心以至于发生意外,请你帮她解决这 ...
- Kali Linux上外网
第一部分 攻击者杀链 第一章 走进Kali Linux 镜像准备:32位kali linxu 2019(之前下载好了,按书上的版本太低了要重新配置好多东西就用最新版了) , win XP 前两章照着 ...
- python 爬虫 随机换user-agent
USER_AGENTS = [ "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like ...
- 在浏览器地址栏输入www.baidu.com到打开百度首页这期间到底发生了什么?
刚才无意间看到这么一个面试题,觉得有点意思,我想从五层网络模型的角度说说我的看法. 1.首先通过DNS域名系统向域名服务器发送域名解析请求来得到百度的IP地址39.156.69.79:2.系统通过AR ...
- 一些你不知道的js特性【一】
关于js 我们知道完整的js包括三个方面ECMAScript.DOM(文档对象模型).BOM(浏览器对象模型). ECMAScript定义了与宿主无关的预言基础,比如:语法(包含正则语法).类型.语句 ...
- office2019专业版激活秘钥 激活码
office2019专业版激活码 激活秘钥 2019年5月更新 [Key]:F4QWT-NMMKH-XPTV9-W9HFB-B4JCQ [剩余次数:900000+] office2019激活 产品秘钥 ...