Vue 组件修改根实例的数据的方法


Posted in Javascript onApril 02, 2019

思路:

1 在组件内部监听事件并把事件 emit

2 在组件上监听 emit 出来的事件

3 当事件发生时执行对应的函数去修改根实例上的 data

实现:

1 在组件内部的 input框 中监听 input事件,并给 input事件 绑定triggerInput函数

2 当往 input框 中输入内容时,触发 triggerInput 函数

triggerInput函数 向外部 emit 一个 edit事件 和 输入框的值

3 在组件上监听这个 edit事件 并给 edit事件 绑定 triggerEdit函数

4 此时会触发 triggerEdit函数,triggerEdit函数 就能去修改根实例上的 data

注意:

1 triggerEdit函数 的第一个参数为你想要修改的根实例 data 的 key

2 第二个参数 $event 是套路,有这个参数才能在 triggerEdit函数 中获取组件内部 emit 出来的 input框的值

3 可以在 triggerEdit函数中 log 出组件内部发生的 event

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8">
 <title></title>
 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
 </head>
 <body>
 <div id="app">
  根实例的 data message:{{message}}
  <br>
  根实例的 data name:{{name}}
  <br>
  message:
  <component-demo1
  v-on:edit="triggerEdit('message', $event)"
  ></component-demo1>
  name:
  <component-demo1
  v-on:edit="triggerEdit('name', $event)"
  ></component-demo1>
 </div>
 </body>
 <script>
 Vue.component('component-demo1', {
  template: `
  <div>
   组件内的 input:
   <input
   v-on:input='triggerInput'
   >
  </div>
  `,
  methods: {
  triggerInput: function (e) {
   this.$emit('edit', e.target.value)
  },
  },
 })
 var app = new Vue({
  el: '#app',
  data: {
  message: 'hello vue',
  name: 'gua',
  },
  methods: {
  triggerEdit: function (key, value) {
   this[key] = value
  }
  }
 })
 </script>
</html>

Vue 组件修改根实例的数据的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
php与js的区别是什么
Aug 05 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
Sep 24 Javascript
javascript实现iframe框架延时加载的方法
Oct 30 Javascript
jquery中JSON的解析方式
Mar 16 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
Apr 21 Javascript
javascript中setAttribute()函数使用方法及兼容性
Jul 19 Javascript
jquery实现弹出层登录和全屏层注册特效
Aug 28 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
Nov 21 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
Dec 08 Javascript
JS中使用textPath实现线条上的文字
Dec 25 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
Dec 02 Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
Jan 30 Javascript
vue鼠标悬停事件实例详解
Apr 01 #Javascript
jquery简单实现纵向的无缝滚动代码实例
Apr 01 #jQuery
详解Vue前端对axios的封装和使用
Apr 01 #Javascript
浅谈js闭包理解
Apr 01 #Javascript
详解Vue之父子组件传值
Apr 01 #Javascript
微信二次分享报错invalid signature问题及解决方法
Apr 01 #Javascript
JS中的防抖与节流及作用详解
Apr 01 #Javascript
You might like
php安装swoole扩展的方法
2015/03/19 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
仿服务器端脚本方式的JS模板实现方法
2007/04/27 Javascript
面向对象的javascript(笔记)
2009/10/06 Javascript
JavaScript中的排序算法代码
2011/02/22 Javascript
JavaScript对IE操作的经典代码(推荐)
2014/03/10 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
JavaScript内存泄漏的处理方式
2017/11/20 Javascript
bootstrap datetimepicker控件位置异常的解决方法
2017/11/23 Javascript
基于vue、react实现倒计时效果
2019/08/26 Javascript
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
python使用cookie库操保存cookie详解
2014/03/03 Python
TensorFlow模型保存和提取的方法
2018/03/08 Python
python编写暴力破解zip文档程序的实例讲解
2018/04/24 Python
详解python持久化文件读写
2019/04/06 Python
Python3基础教程之递归函数简单示例
2019/06/07 Python
python 将日期戳(五位数时间)转换为标准时间
2019/07/11 Python
django之对FileField字段的upload_to的设定方法
2019/07/28 Python
Python中字典与恒等运算符的用法分析
2019/08/22 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
python opencv如何实现图片绘制
2020/01/19 Python
python3读取autocad图形文件.py实例
2020/06/05 Python
重构Python代码的六个实例
2020/11/25 Python
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
璀璨的珍珠、密钉和个性化珠宝:Lily & Roo
2021/01/21 全球购物
校园安全检查制度
2014/02/03 职场文书
工地安全检查制度
2014/02/04 职场文书
银行委托书范本
2014/09/28 职场文书
2015年七一建党节活动总结
2015/03/20 职场文书
2015年司法所工作总结
2015/04/27 职场文书
2016春节放假通知范文
2015/08/18 职场文书
创业计划书之网吧
2019/10/10 职场文书
python爬取豆瓣电影TOP250数据
2021/05/23 Python