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 相关文章推荐
excel操作之Add Data to a Spreadsheet Cell
Jun 12 Javascript
javascript 动态table添加colspan\rowspan 参数的方法
Jul 25 Javascript
jquery 读取页面load get post ajax 四种方式代码写法
Apr 02 Javascript
Jquery中显示隐藏的实现代码分析
Jul 26 Javascript
jquery ajax提交整个表单元素的快捷办法
Mar 27 Javascript
JS清除选择内容的方法
Jan 29 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
Sep 01 Javascript
JavaScript常用字符串与数组扩展函数小结
Apr 24 Javascript
JS简单实现浮动窗口效果示例
Sep 07 Javascript
addEventListener()与removeEventListener()解析
Apr 20 Javascript
浅谈vue项目用到的mock数据接口的两种方式
Oct 09 Javascript
在vue中使用vuex,修改state的值示例
Nov 08 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的SQL注入实现(测试代码安全不错)
2011/02/27 PHP
php session安全问题分析
2011/06/24 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
PHP中__set()实例用法和基础讲解
2019/07/23 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
2020/10/30 PHP
某页码显示的helper 少量调整,另附js版
2010/09/12 Javascript
本地对象Array的原型扩展实现代码
2010/12/04 Javascript
js中的屏蔽的使用示例
2013/07/30 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
AngularJs中Bootstrap3 datetimepicker使用实例
2016/12/13 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
在vue中实现给每个页面顶部设置title
2020/07/29 Javascript
Python命令行解析模块详解
2018/02/01 Python
基于Django用户认证系统详解
2018/02/21 Python
python3 读写文件换行符的方法
2018/04/09 Python
多个应用共存的Django配置方法
2018/05/30 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
python 反编译exe文件为py文件的实例代码
2019/06/27 Python
python中pip的使用和修改下载源的方法
2019/07/08 Python
详解python中的index函数用法
2019/08/06 Python
Python如何使用PIL Image制作GIF图片
2020/05/16 Python
django 外键创建注意事项说明
2020/05/20 Python
python交互模式基础知识点学习
2020/06/18 Python
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
启动仪式策划方案
2014/06/14 职场文书
连锁超市项目计划书
2014/09/15 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
Python中time标准库的使用教程
2022/04/13 Python