zoukankan      html  css  js  c++  java
  • 原生js模拟vue的响应式

     js模拟vue的双向绑定
        1、处理数据有getter和setter
        2、数据改变 触发set
        3、set通知watcher监听
        4、watcher监听更新页面
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
    </head>
    <body>
      <input type="text" onkeydown="inputChange(this)">
      <span></span>
      <script>
        // js模拟vue的双向绑定
        /* 
        1、处理数据有getter和setter
        2、数据改变 触发set
        3、set通知watcher监听
        4、watcher监听更新页面
        */
    
        let data={
          inputValue:''
        }
        let middle=''
        Object.defineProperty(data,'inputValue',{
          get(){
            return middle
          },
          set(params){
            middle = params
            watcher()
          }
        })
        function inputChange(e){
          console.log(111)
          // 将input值赋给inputValue
          data.inputValue=e.value
        }
        function watcher(){
          // 根据修改后的值控制页面刷新
          let value=data.inputValue;
          var span=document.querySelector('span');
          span.innerHTML=value
        }
      </script>
    </body>
    </html>
  • 相关阅读:
    servicestack and redis
    图片服务器
    CRQS介绍
    javascript闭包之购物车加减及提示
    javascript best practices
    EOF
    2012年回顾
    volatile
    通过inode来操作文件
    采样问题
  • 原文地址:https://www.cnblogs.com/shewill/p/13440011.html
Copyright © 2011-2022 走看看