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 相关文章推荐
XENON基于JSON变种
Jul 27 Javascript
DIY jquery plugin - tabs标签切换实现代码
Dec 11 Javascript
jquery实现简单的轮换出现效果实例
Jul 23 Javascript
JS实现选择TextArea内文本的方法
Aug 03 Javascript
深入理解Node.js的HTTP模块
Oct 12 Javascript
jsTree事件和交互以及插件plugins详解
Aug 29 Javascript
vue-swiper的使用教程
Aug 30 Javascript
详解vue-router导航守卫
Jan 19 Javascript
微信小程序事件 bindtap bindinput代码实例
Aug 26 Javascript
vue-cli3跨域配置的简单方法
Sep 06 Javascript
JQuery常用选择器功能与用法实例分析
Dec 23 jQuery
ES6中Promise的使用方法实例总结
Feb 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
php封装好的人民币数值转中文大写类
2015/12/20 PHP
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
动态添加option及createElement使用示例
2014/01/26 Javascript
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
2015/02/20 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
js实现显示当前状态的导航效果代码
2015/08/28 Javascript
微信企业号开发之微信考勤Cookies的使用
2015/09/11 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
vuejs响应用户事件(如点击事件)
2017/03/14 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
2019/09/25 Javascript
vue.js实现双击放大预览功能
2020/06/23 Javascript
如何在vue 中引入使用jquery
2020/11/10 jQuery
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
python字典序问题实例
2014/09/26 Python
python自动格式化json文件的方法
2015/03/11 Python
Python 异常处理的实例详解
2017/09/11 Python
基于Django contrib Comments 评论模块(详解)
2017/12/08 Python
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
基于树莓派的语音对话机器人
2019/06/17 Python
django 装饰器 检测登录状态操作
2020/07/02 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
中专生职业生涯规划书范文
2013/12/29 职场文书
俄语专业职业生涯规划
2014/02/26 职场文书
信息学院毕业生自荐信范文
2014/03/04 职场文书
片区教研活动总结
2014/07/02 职场文书
打架赔偿协议书范本
2014/10/26 职场文书
教师党员个人整改措施
2014/10/27 职场文书
污水处理保证书
2015/05/09 职场文书
小学教师教学随笔
2015/08/14 职场文书
Win10系统下配置Java环境变量
2021/06/13 Java/Android