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 相关文章推荐
js prototype 格式化数字 By shawl.qiu
Apr 02 Javascript
对xmlHttp对象的理解
Jan 17 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
May 07 Javascript
jQuery客户端分页实例代码
Nov 18 Javascript
js中判断对象是否为空的三种实现方法
Dec 23 Javascript
js动态修改整个页面样式达到换肤效果
May 23 Javascript
JavaScript 匿名函数和闭包介绍
Apr 13 Javascript
javascript字符串替换函数如何一次性全部替换掉
Oct 30 Javascript
理解JS绑定事件
Jan 19 Javascript
jQuery链式调用与show知识浅析
May 11 Javascript
基于Angular.js实现的触摸滑动动画实例代码
Feb 19 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
Oct 19 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
模拟flock实现文件锁定
2007/02/14 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
2014/07/28 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
Javascript学习笔记7 原型链的原理
2010/01/11 Javascript
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
2014/07/02 Javascript
使用jquery.validate自定义方法实现&quot;手机号码或者固话至少填写一个&quot;的逻辑验证
2014/09/01 Javascript
如何编写一个d.ts文件的步骤详解
2018/04/13 Javascript
详解vue中axios的封装
2018/07/18 Javascript
如何从头实现一个node.js的koa框架
2019/06/17 Javascript
javascript中的闭包概念与用法实践分析
2019/07/26 Javascript
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
2019/11/18 Javascript
Python探索之pLSA实现代码
2017/10/25 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
python进阶之多线程对同一个全局变量的处理方法
2018/11/09 Python
python样条插值的实现代码
2018/12/17 Python
python绘制地震散点图
2019/06/18 Python
pandas dataframe的合并实现(append, merge, concat)
2019/06/24 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
python实现在线翻译功能
2020/03/03 Python
如何提高python 中for循环的效率
2020/04/15 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
2020/06/11 Python
flask开启多线程的具体方法
2020/08/02 Python
公司JAVA开发面试题
2015/04/02 面试题
质检的岗位职责
2013/11/17 职场文书
化学学院毕业生自荐信范文
2013/12/17 职场文书
哈理工毕业生的求职信
2013/12/22 职场文书
建筑院校毕业生求职信
2014/06/13 职场文书
关于颐和园的导游词
2015/01/30 职场文书
元旦联欢晚会主持词
2015/07/01 职场文书
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS
HDFS免重启挂载新磁盘
2022/04/06 Servers