1、$emit的使用场景

子组件调用父组件的方法并传递数据
注意:子组件标签中的时间也不区分大小写要用“-”隔开

子组件:
  1. <template>
  2. <button @click="emitEvent">点击我</button>
  3. </template>
  4. <script>
  5. export default {
  6. data() {
  7. return {
  8. msg: "我是子组件中的数据"
  9. }
  10. },
  11. methods: {
  12. emitEvent(){
  13. this.$emit('my-event', this.msg)
  14. //通过按钮的点击事件触发方法,然后用$emit触发一个my-event的自定义方法,传递this.msg数据。
  15. }
  16. }
  17. }
  18. </script>
父组件:
  1. <template>
  2. <div id="app">
  3. <child-a @my-event="getMyEvent"></child-a>
  4. <!--父组件中通过监测my-event事件执行一个方法,然后取到子组件中传递过来的值-->
  5. </div>
  6. </template>
  7. <script>
  8. import ChildA from './components/child.vue'
  9. export default {
  10. components: {
  11. ChildA
  12. },
  13. methods: {
  14. getMyEvent(msg){
  15. console.log('接收的数据--------->'+msg)//接收的数据--------->我是子组件中的数据
  16. }
  17. }
  18. }
  19. </script>

2、$refs的使用场景

父组件调用子组件的方法,可以传递数据
注意:子组件标签中的时间也不区分大小写要用“-”隔开

父组件:
  1. <template>
  2. <div id="app">
  3. <child-a ref="child"></child-a>
  4. <!--用ref给子组件起个名字-->
  5. <button @click="getMyEvent">点击父组件</button>
  6. </div>
  7. </template>
  8. <script>
  9. import ChildA from './components/child.vue'
  10. export default {
  11. components: {
  12. ChildA
  13. },
  14. data() {
  15. return {
  16. msg: "我是父组件中的数据"
  17. }
  18. },
  19. methods: {
  20. getMyEvent(){
  21. this.$refs.child.emitEvent(this.msg);
  22. //调用子组件的方法,child是上边ref起的名字,emitEvent是子组件的方法。
  23. }
  24. }
  25. }
  26. </script>
子组件:
  1. <template>
  2. <button>点击我</button>
  3. </template>
  4. <script>
  5. export default {
  6. methods: {
  7. emitEvent(msg){
  8. console.log('接收的数据--------->'+msg)//接收的数据--------->我是父组件中的数据
  9. }
  10. }
  11. }
  12. </script>

3、$on的使用场景

兄弟组件之间相互传递数据

  • 首先创建一个vue的空白实例(兄弟间的桥梁)
  1. import Vue from 'vue'
  2. export default new Vue()
  • 子组件 childa
  • 发送方使用 $emit 自定义事件把数据带过去
  1. <template>
  2. <div>
  3. <span>A组件->{{msg}}</span>
  4. <input type="button" value="把a组件数据传给b" @click ="send">
  5. </div>
  6. </template>
  7. <script>
  8. import vmson from "../../../util/emptyVue"
  9. export default {
  10. data(){
  11. return {
  12. msg:{
  13. a:'111',
  14. b:'222'
  15. }
  16. }
  17. },
  18. methods:{
  19. send:function(){
  20. vmson.$emit("aevent",this.msg)
  21. }
  22. }
  23. }
  24. </script>
  • 父组件:
  1. <template>
  2. <div>
  3. <childa></childa>
  4. <br />
  5. <childb></childb>
  6. </div>
  7. </template>
  8. <script>
  9. import childa from './childa.vue';
  10. import childb from './childb.vue';
  11. export default {
  12. components:{
  13. childa,
  14. childb
  15. },
  16. data(){
  17. return {
  18. msg:""
  19. }
  20. },
  21. methods:{
  22.  
  23. }
  24. }
  25. </script>

————————————————
版权声明:本文为CSDN博主「骚φ(゜▽゜*)♪白」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chaochao466/article/details/82884966

vue中\$refs、\$emit、$on的使用场景的更多相关文章

  1. RxJS/Cycle.js 与 React/Vue 相比更适用于什么样的应用场景?

    RxJS/Cycle.js 与 React/Vue 相比更适用于什么样的应用场景? RxJS/Cycle.js 与 React/Vue 相比更适用于什么样的应用场景? - 知乎 https://www ...

  2. 基于iscroll的better-scroll在vue中的使用

    什么是 better-scroll better-scroll 是一个移动端滚动的解决方案,它是基于 iscroll 的重写,它和 iscroll 的主要区别在这里.better-scroll 也很强 ...

  3. better-scroll在vue中的应用

    在我们日常的移动端项目开发中,处理滚动列表是再常见不过的需求了,以滴滴为例,可以是这样竖向滚动的列表,如图所示: 微信 —> 钱包—>滴滴出行”体验效果. 什么是 better-scrol ...

  4. 对vue中nextTick()的理解及使用场景说明

    异步更新队列: 首先我们要对vue的数据更新有一定理解: vue是依靠数据驱动视图更新的,该更新的过程是异步的. 即:当侦听到你的数据发生变化时, Vue将开启一个队列(该队列被Vue官方称为异步更新 ...

  5. 函数防抖节流的理解及在Vue中的应用

    防抖和节流的目的都是为了减少不必要的计算,不浪费资源,只在适合的时候再进行触发计算. 一.函数防抖 定义 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时:典型的案例就是输入搜索:输入 ...

  6. 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 官方解释 ...

  7. 怎么在vue中使用less

    最近使用vue2.0重构项目, 使用vue-cli脚手架构建, 采用webpack模板, 要在项目中使用less进行样式的编写 首先, 打开终端, 在当前项目目录下安装less npm install ...

  8. Vue中的$set的使用

    在我们使用vue进行开发的过程中,可能会遇到一种情况:当生成vue实例后,当再次给数据赋值时,有时候并不会自动更新到视图上去: 当我们去看vue文档的时候,会发现有这么一句话:如果在实例创建之后添加新 ...

  9. vue中$refs的使用

    vue中$refs获取组件或元素: 获取的元素就相当于是一个原生获取的元素,可以进行操作 this.$refs.ele.style.color = 'red

  10. mockjs在vue中的使用

    mockjs在vue中的使用 安装好vue-cli后 加载模块: npm install mockjs 创建mock.js文件到src目录下的任一合适文件内新建mockjs.js,设置好拦截信息,设置 ...

随机推荐

  1. SharePoint 2019 里安装FlowPortal6.00c报错

    环境: Windows Server 2016+SharePoint 2019 安装FlowPortal 6.00c后应用程序池FlowPortal.net 6.x AppPool自动停止. 事件查看 ...

  2. Android lifecyle 源码解剖 - gdutxiaoxu的博客(微信公众号 stormjun94)

    版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/gdutxiaoxu/article/det ...

  3. color颜色大全

  4. C++标准库之string类型

    stirng类型 简介: C++标准库提供的类型:string 长度可变的字符串 操作简单  仅为包含个人常用函数 头文件 string 类型与其它的标准库类型相同,都需要包含对应的头文件 #incl ...

  5. 第十六届浙江大学宁波理工学院程序设计大赛 E 雷顿女士与平衡树(并查集)

    题意 链接:https://ac.nowcoder.com/acm/contest/2995/E来源:牛客网 卡特莉正在爬树,此时她又在树梢发现了一个谜题,为了不令她分心以至于发生意外,请你帮她解决这 ...

  6. Kali Linux上外网

    第一部分 攻击者杀链 第一章  走进Kali Linux 镜像准备:32位kali linxu 2019(之前下载好了,按书上的版本太低了要重新配置好多东西就用最新版了) , win XP 前两章照着 ...

  7. python 爬虫 随机换user-agent

    USER_AGENTS = [ "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like ...

  8. 在浏览器地址栏输入www.baidu.com到打开百度首页这期间到底发生了什么?

    刚才无意间看到这么一个面试题,觉得有点意思,我想从五层网络模型的角度说说我的看法. 1.首先通过DNS域名系统向域名服务器发送域名解析请求来得到百度的IP地址39.156.69.79:2.系统通过AR ...

  9. 一些你不知道的js特性【一】

    关于js 我们知道完整的js包括三个方面ECMAScript.DOM(文档对象模型).BOM(浏览器对象模型). ECMAScript定义了与宿主无关的预言基础,比如:语法(包含正则语法).类型.语句 ...

  10. office2019专业版激活秘钥 激活码

    office2019专业版激活码 激活秘钥 2019年5月更新 [Key]:F4QWT-NMMKH-XPTV9-W9HFB-B4JCQ [剩余次数:900000+] office2019激活 产品秘钥 ...