微信小程序 03 数据劫持代理和事件绑定
3.1 Vue 中 data 选项 是怎么做到的呢 ?
利用 Object.defineProperty 就能做到 数据双向绑定。
Object.defineProperty(属性所在对象,属性的名字,描述符对象)
描述符对象是一种玩法和限制。
configurable:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性,默认值为true。
enumerable:表示能否通过for in循环访问属性,默认值为true
writable:表示能否修改属性的值。默认值为true。
value:包含这个属性的数据值。默认值为undefined。
get 方法:在 获取 属性时,执行 的函数方法。
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 事件绑定
冒泡事件
:当一个组件上的事件被触发后,该事件会向父节点传递。非冒泡事件
:当一个组件上的事件被触发后,该事件不会向父节点传递。表单事件 和 自定义事件 通常 用的都是 非冒泡事件。事件捕获
:捕获事件是 从外到内的过程。从父节点开始捕获 一直捕获到 需要触发的 子节点身上!
冒泡事件
:简单来说,就是 从当前触发的这个节点处,从内到外的 再去 触发 那些父节点的 事件!俗称冒泡。
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 数据劫持代理和事件绑定相关推荐
- 微信小程序(二)--- 数据绑定,事件绑定,全局配置window,tabBar,网络数据请求,request合法域名,GET,POST
目录 一.WXML模板语法 1.数据绑定 (1)Mustache语法 2.事件绑定 (1)常用事件 (2)属性列表 (3)target和currentTarget的区别 (4)bindtap语法格式 ...
- 微信小程序 radio-group(排列) 及事件绑定、点击切换样式
一.这里的测试页面是参照(小打卡的-tab页"发现")来设计的 wxml代码: <import src='../userlist/listItem.wxml' /> & ...
- 微信小程序开发02(模板语法与事件绑定)
模板语法与事件绑定
- 小程序素材抓取软件_如何抓取微信小程序的数据?
2017年1月份备受关注的微信小程序功能正式上线了,好多知名平台纷纷推出了自己的微信小程序,例如大众点评.美团外卖.京东购物.对于我们爬虫开发者来说这绝对是好事情,意味着又多了一个数据来源,又多了一种 ...
- 如何抓取微信小程序的数据?
2017年1月份备受关注的微信小程序功能正式上线了,好多知名平台纷纷推出了自己的微信小程序,例如大众点评.美团外卖.京东购物.对于我们爬虫开发者来说这绝对是好事情,意味着又多了一个数据来源,又多了一种 ...
- 微信小程序observers数据监听器的使用
微信小程序observers数据监听器的使用 数据监听器可以用于监听和响应任何属性和数据字段的变化. 1.observers使用的前提条件 在微信小程序中数据监听器的使用是有几个前提条件的,否则是无法 ...
- 微信小程序开发数据缓存基础知识辨析以及运用实例
微信小程序开发数据缓存基础知识辨析以及运用实例 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的 ...
- 微信小程序用户数据的签名校验和加解密 - 后端nodejs
在本文 微信小程序用户数据的签名校验和加解密 之前需要先看看 微信小程序-获取用户session_key,openid,unionid - 后端为nodejs 代码封装是在上文添加的. 小程序代码: ...
- 把jquery city-picker地区选择插件数据改成微信小程序省市地区数据一样(php代码抓取微信小程序地区数据)
原版插件 https://github.com/tshi0912/city-picker 资源下载 https://download.csdn.net/download/jianye112/12036 ...
最新文章
- 百度云盘上传文件和下载文件慢的解决办法
- centos7启动dhcp失败_CentOs 7 搭建DHCP服务器 启动报错
- mysql的join语句使用_在MySQL中使用JOIN语句进行连接操作的详细教程
- linux目录规范及简单说明
- ARMA模型的性质 1
- loj 6085.「美团 CodeM 资格赛」优惠券
- 超8千Star,火遍Github的Python反直觉案例集!
- 左边导航条动态增加或缩短高度以及放大缩小问题的解决方法
- SQL动态配置,动态解析SQL
- 软件工程 结对编程 设计结对 单元测试结对 评审结对 是什么
- 数据类产品设计和实现思路
- 亚泰盛世携NB物理实验邀你莅临第66届中国教育装备展
- 思维导图模板怎么下载
- 利用NoteExpress统一Elsevier旗下期刊参考文献格式
- Git和SVN区别和命令
- 计算机截屏无法保存,win7电脑自带截图软件保存图片失败怎么办?
- 虾皮运营-shopee台湾站实战教程
- JAVA入门——lesson 7
- 第一篇文献:谈大数据时代的云控制摄影测量 ——张祖勋院士
- CO-PA: 获利能力分析之特征值派生 - KEDR / KEDB
热门文章
- win10下Light-GBM(LGB)安装
- 强类型语言与弱类型语言/面向过程与面向对象
- 用C#实现查询今天是什么节日的方法
- HTML5期末大作业:红酒主题——简单的品牌红酒销售网页设计(4页) HTML+CSS+JavaScript 期末大作业HTML代码
- 2023年考研计算机统考408计算机学科专业基础综合历年真题视频
- 超详细Hexo博客搭建教程
- 输入N,求N以内(包括N)的质数之和
- 从混合云存储看阿里云对下一代企业计算架构的思考
- windoes 平台 Qt 的下载与安装-(Qt 5.15.2 LTS,这是一个长期支持版本)
- QT 管理win系统服务