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 object and DOM element
Apr 15 Javascript
Bootstarp风格的toggle效果分享
Feb 23 Javascript
jQuery中通过ajax的get()函数读取页面的方法
Feb 29 Javascript
Node.js的Web模板引擎ejs的入门使用教程
Jun 06 Javascript
Ionic2调用本地SQlite实例
Apr 22 Javascript
create-react-app构建项目慢的解决方法
Mar 14 Javascript
express.js中间件说明详解
Mar 19 Javascript
使用zrender.js绘制体温单效果
Oct 31 Javascript
weui中的picker使用js进行动态绑定数据问题
Nov 06 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
Dec 10 Javascript
在vue中配置不同的代理同时访问不同的后台操作
Sep 11 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
Dec 09 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之PHP语法学习笔记1
2006/12/17 PHP
10款PHP开源商城系统汇总介绍
2015/07/23 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
thinkphp框架使用JWTtoken的方法详解
2019/10/10 PHP
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
Google的跟踪代码 动态加载js代码方法应用
2012/11/12 Javascript
使用JS 清空File控件的路径值
2013/07/08 Javascript
js实现图片拖动改变顺序附图
2014/05/13 Javascript
对JavaScript中this指针的新理解分享
2015/01/31 Javascript
JS实现自动定时切换的简洁网页选项卡效果
2015/10/13 Javascript
如何用js实现鼠标向上滚动时浮动导航
2016/07/18 Javascript
使用Xcache缓存器加速PHP网站的配置方法
2017/04/22 Javascript
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
一步步教你利用Docker设置Node.js
2018/11/20 Javascript
JS使用百度地图API自动获取地址和经纬度操作示例
2019/04/16 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
2020/09/10 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
Python中使用OpenCV库来进行简单的气象学遥感影像计算
2016/02/19 Python
Python实现字典依据value排序
2016/02/24 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
python 将视频 通过视频帧转换成时间实例
2020/04/23 Python
Python join()函数原理及使用方法
2020/11/14 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
CSS3绘制超炫的上下起伏波动进度加载动画
2016/04/21 HTML / CSS
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
阿拉伯世界最大的电子商务网站:Souq沙特阿拉伯
2016/10/28 全球购物
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
会议开场欢迎词
2014/01/15 职场文书
七一表彰活动方案
2014/01/18 职场文书
公司门卫岗位职责范本
2014/07/08 职场文书
违反交通安全法检讨书
2014/10/24 职场文书
升职自我推荐信范文
2015/03/25 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书
MySQL的索引你了解吗
2022/03/13 MySQL