es6数据变更同步到视图层的方法


Posted in Javascript onMarch 04, 2019

数据变更同步到视图层有一个很重要的东西就是Proxy,Proxy的作用就是可以隐藏真正的对象,而用户去修改它的代理对象.Proxy可以监听数据的变化,例如

<div id="test">
  name:{{name}}
  age:{{age}}
</div>
<script>
  let el = document.getElementById('test');
  let datainner = {
    name:"Jack",
    age:"18"
  }
  let template = el.innerHTML;
  let data = new Proxy(datainner,{
    set(obj,name,value){
      console.log(name+"的值被操纵成了value"+value)
      obj[name]=value;
      console.log("数据改变了");
      render()
    }
  })
  data.name="Jack Chen"
</script>

es6数据变更同步到视图层的方法

es6数据变更同步到视图层的方法

可以监控到data数据的改变,然后就可以将数据渲染到html中,就可以实现es6数据同步到视图层

最终代码

<script>
  let el = document.getElementById('test');
  let datainner = {
    name:"Jack",
    age:"18"
  }
  let template = el.innerHTML;
  let data = new Proxy(datainner,{
    set(obj,name,value){
      console.log(name+"的值被操纵成了"+value)
      obj[name]=value;
      console.log("数据改变了");
      render();
    }
  })
  render();
  //数据渲染
  function render(){
    el.innerHTML = template.replace(/\{\{\w+\}\}/g,str=>{
      str=str.substring(2,str.length-2);
      console.log(datainner[str]);
      return datainner[str]
    })
  }
</script>

最终效果

es6数据变更同步到视图层的方法

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

Javascript 相关文章推荐
你真的了解JavaScript吗?
Feb 24 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
Jul 09 Javascript
详解JavaScript编程中正则表达式的使用
Oct 25 Javascript
jQuery表格插件datatables用法汇总
Mar 29 Javascript
jquery实现网站列表切换效果的2种方法
Aug 12 Javascript
BootstrapValidator不触发校验的实现代码
Sep 28 Javascript
js倒计时显示实例
Dec 11 Javascript
js省市区级联查询(插件版&amp;无插件版)
Mar 21 Javascript
微信小程序之事件交互操作实例分析
Dec 03 Javascript
原生js实现随机点名功能
Nov 05 Javascript
Vue的双向数据绑定实现原理解析
Feb 17 Javascript
react使用CSS实现react动画功能示例
May 18 Javascript
使用webpack构建应用的方法步骤
Mar 04 #Javascript
详解element-ui中form验证杂记
Mar 04 #Javascript
JS使用数组实现的队列功能示例
Mar 04 #Javascript
JS使用栈判断给定字符串是否是回文算法示例
Mar 04 #Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
Mar 04 #Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
Mar 04 #Javascript
使用ESLint禁止项目导入特定模块的方法步骤
Mar 04 #Javascript
You might like
最小化数据传输――在客户端存储数据
2006/10/09 PHP
简单的过滤字符串中的HTML标记
2006/12/25 PHP
PHP 网络开发详解之远程文件包含漏洞
2010/04/25 PHP
php生成xml时添加CDATA标签的方法
2014/10/17 PHP
小议Function.apply() 之一------(函数的劫持与对象的复制)
2006/11/30 Javascript
利用javascript实现一些常用软件的下载导航
2009/08/03 Javascript
javascript中typeof的使用示例
2013/12/19 Javascript
4种JavaScript实现简单tab选项卡切换的方法
2016/01/06 Javascript
浅谈Angular中ngModel的$render
2016/10/24 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
QRCode.js二维码生成并能长按识别
2018/10/16 Javascript
基于js Canvas实现二次贝塞尔曲线
2018/12/25 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
[01:45]典藏宝瓶2+祈求者身心——这就是DOTA2TI9总奖金突破3000万美元的秘密
2019/07/21 DOTA
Django在Win7下的安装及创建项目hello word简明教程
2014/07/14 Python
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
一个Python最简单的接口自动化框架
2018/01/02 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
Django中的ajax请求
2018/10/19 Python
python运用sklearn实现KNN分类算法
2019/10/16 Python
Python生成词云的实现代码
2020/01/14 Python
python实现人脸签到系统
2020/04/13 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
哄娃神器4moms商店:美国婴童用品品牌
2019/03/07 全球购物
FC-Moto美国:欧洲最大的摩托车服装和头盔商店之一
2019/08/24 全球购物
delegate与普通函数的区别
2014/01/22 面试题
市场营销调查计划书
2014/05/02 职场文书
电钳工人个人求职信
2014/05/10 职场文书
就业协议书怎么填
2014/09/15 职场文书
向国旗敬礼活动总结范文2014
2014/09/27 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
pytorch显存一直变大的解决方案
2021/04/08 Python
浅谈node.js中间件有哪些类型
2021/04/29 Javascript