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 相关文章推荐
jQuery 判断页面元素是否存在的代码
Aug 14 Javascript
Javascript Object.extend
May 18 Javascript
js兼容的placeholder属性详解
Aug 18 Javascript
js验证电话号码与手机支持+86的正则表达式
Jan 23 Javascript
把jQuery的类、插件封装成seajs的模块的方法
Mar 12 Javascript
jquery获取radio值(单选组radio)
Oct 16 Javascript
Javascript 构造函数详解
Oct 22 Javascript
使用jquery制作弹出框效果
Apr 03 Javascript
在vue中使用G2图表的示例代码
Mar 19 Javascript
vue开发中遇到的问题总结
Apr 07 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
Jul 12 Javascript
Vue中computed及watch区别实例解析
Aug 01 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
星际中的相关伤害
2020/03/04 星际争霸
PHP初学者头疼问题总结
2006/07/08 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
php实现检查文章是否被百度收录
2015/01/27 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
2017/03/02 PHP
window.showModalDialog使用手册
2007/01/11 Javascript
网页图片延时加载的js代码
2010/04/22 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
2014/11/28 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
跟我学习javascript的函数调用和构造函数调用
2015/11/16 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
使用vue.js实现联动效果的示例代码
2017/01/10 Javascript
借助node实战JSONP跨域实例
2017/03/30 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
vue-cli 3.x 修改dist路径的方法
2018/09/19 Javascript
解决vue无法设置滚动位置的问题
2018/10/07 Javascript
详解利用nodejs对本地json文件进行增删改查
2019/09/20 NodeJs
js实现时钟定时器
2020/03/26 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
详解Python命令行解析工具Argparse
2016/04/20 Python
python+pyqt5实现24点小游戏
2019/01/24 Python
python3 pygame实现接小球游戏
2019/05/14 Python
Python OpenCV中的numpy与图像类型转换操作
2020/12/11 Python
Tenstickers法国:墙贴和装饰贴纸
2019/08/26 全球购物
实体的生命周期
2013/08/31 面试题
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
自我评价正确写法范文
2013/12/10 职场文书
春节联欢会策划方案
2014/05/16 职场文书
国企干部对照检查材料
2014/08/22 职场文书
周年庆典答谢词
2015/01/20 职场文书
2015年加油站工作总结
2015/05/13 职场文书
小平小道观后感
2015/06/09 职场文书