3.1 Vue 中 data 选项 是怎么做到的呢 ?

利用 Object.defineProperty 就能做到 数据双向绑定。

Object.defineProperty(属性所在对象,属性的名字,描述符对象)

描述符对象是一种玩法和限制。

  1. configurable:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性,默认值为true。

  2. enumerable:表示能否通过for in循环访问属性,默认值为true

  3. writable:表示能否修改属性的值。默认值为true。

  4. value:包含这个属性的数据值。默认值为undefined。

  5. get 方法:在 获取 属性时,执行 的函数方法。

  6. set 方法:在 设置 属性时,执行 的函数方法。会有个 参数,这个参数 就是 要 重新赋值的数据。


let data = {username:'mqy',age:20
}//模拟组件的实例 this
let _this= {}// 利用 Object.defineProperty
for(let item in data){Object.defineProperty(_this,item,{//  我们会通过 设计get 方法 拿到 data[item]get(){return data[item]},set(newVal){data[item] = newVal;}})
}



这里的 set(){} 如果 里面 写的 是 _this.item = xxx 那么就会进入 死循环,因为我们知道 set 方法 就是 在 _this 修改一些属性时 才会执行的。而 _this.item = xxx 又是在 修改属性了。也就是 set() 方法 又会执行一次,然后 就进入 死循环。


3.2 事件绑定

  1. 冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。
  2. 非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。表单事件 和 自定义事件 通常 用的都是 非冒泡事件。
  3. 事件捕获:捕获事件是 从外到内的过程。从父节点开始捕获 一直捕获到 需要触发的 子节点身上!

冒泡事件简单来说,就是 从当前触发的这个节点处,从内到外的 再去 触发 那些父节点的 事件!俗称冒泡。

bindTap:冒泡事件绑定的 参数。

catchTap:非冒泡事件绑定的 参数。

<view class="mainContext"><image class="img" src="/头像.jpg"></image><text class="textA">{{msg}}</text><view class="showText" bindtap="fatherText"><text bindtap="childText">Hello World</text></view>
</view>

fatherText(){console.log("文本框 view 被点击了!");},childText(){console.log("Hello World 文本被点击了!");},

微信小程序 03 数据劫持代理和事件绑定相关推荐

  1. 微信小程序(二)--- 数据绑定,事件绑定,全局配置window,tabBar,网络数据请求,request合法域名,GET,POST

    目录 一.WXML模板语法 1.数据绑定 (1)Mustache语法 2.事件绑定 (1)常用事件 (2)属性列表 (3)target和currentTarget的区别 (4)bindtap语法格式 ...

  2. 微信小程序 radio-group(排列) 及事件绑定、点击切换样式

    一.这里的测试页面是参照(小打卡的-tab页"发现")来设计的 wxml代码: <import src='../userlist/listItem.wxml' /> & ...

  3. 微信小程序开发02(模板语法与事件绑定)

    模板语法与事件绑定

  4. 小程序素材抓取软件_如何抓取微信小程序的数据?

    2017年1月份备受关注的微信小程序功能正式上线了,好多知名平台纷纷推出了自己的微信小程序,例如大众点评.美团外卖.京东购物.对于我们爬虫开发者来说这绝对是好事情,意味着又多了一个数据来源,又多了一种 ...

  5. 如何抓取微信小程序的数据?

    2017年1月份备受关注的微信小程序功能正式上线了,好多知名平台纷纷推出了自己的微信小程序,例如大众点评.美团外卖.京东购物.对于我们爬虫开发者来说这绝对是好事情,意味着又多了一个数据来源,又多了一种 ...

  6. 微信小程序observers数据监听器的使用

    微信小程序observers数据监听器的使用 数据监听器可以用于监听和响应任何属性和数据字段的变化. 1.observers使用的前提条件 在微信小程序中数据监听器的使用是有几个前提条件的,否则是无法 ...

  7. 微信小程序开发数据缓存基础知识辨析以及运用实例

    微信小程序开发数据缓存基础知识辨析以及运用实例 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的 ...

  8. 微信小程序用户数据的签名校验和加解密 - 后端nodejs

    在本文 微信小程序用户数据的签名校验和加解密 之前需要先看看 微信小程序-获取用户session_key,openid,unionid - 后端为nodejs 代码封装是在上文添加的. 小程序代码: ...

  9. 把jquery city-picker地区选择插件数据改成微信小程序省市地区数据一样(php代码抓取微信小程序地区数据)

    原版插件 https://github.com/tshi0912/city-picker 资源下载 https://download.csdn.net/download/jianye112/12036 ...

最新文章

  1. 百度云盘上传文件和下载文件慢的解决办法
  2. centos7启动dhcp失败_CentOs 7 搭建DHCP服务器 启动报错
  3. mysql的join语句使用_在MySQL中使用JOIN语句进行连接操作的详细教程
  4. linux目录规范及简单说明
  5. ARMA模型的性质 1
  6. loj 6085.「美团 CodeM 资格赛」优惠券
  7. 超8千Star,火遍Github的Python反直觉案例集!
  8. 左边导航条动态增加或缩短高度以及放大缩小问题的解决方法
  9. SQL动态配置,动态解析SQL
  10. 软件工程 结对编程 设计结对 单元测试结对 评审结对 是什么
  11. 数据类产品设计和实现思路
  12. 亚泰盛世携NB物理实验邀你莅临第66届中国教育装备展
  13. 思维导图模板怎么下载
  14. 利用NoteExpress统一Elsevier旗下期刊参考文献格式
  15. Git和SVN区别和命令
  16. 计算机截屏无法保存,win7电脑自带截图软件保存图片失败怎么办?
  17. 虾皮运营-shopee台湾站实战教程
  18. JAVA入门——lesson 7
  19. 第一篇文献:谈大数据时代的云控制摄影测量 ——张祖勋院士
  20. CO-PA: 获利能力分析之特征值派生 - KEDR / KEDB

热门文章

  1. win10下Light-GBM(LGB)安装
  2. 强类型语言与弱类型语言/面向过程与面向对象
  3. 用C#实现查询今天是什么节日的方法
  4. HTML5期末大作业:红酒主题——简单的品牌红酒销售网页设计(4页) HTML+CSS+JavaScript 期末大作业HTML代码
  5. 2023年考研计算机统考408计算机学科专业基础综合历年真题视频
  6. 超详细Hexo博客搭建教程
  7. 输入N,求N以内(包括N)的质数之和
  8. 从混合云存储看阿里云对下一代企业计算架构的思考
  9. windoes 平台 Qt 的下载与安装-(Qt 5.15.2 LTS,这是一个长期支持版本)
  10. QT 管理win系统服务