Vue-19、Vue监测数据的原理_对象

1、数据代理

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue监测数据改变的的原理</title>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>
<body>
<div id="root">
    <h2>学校地址:{
   {
   address}}</h2>
    <h2>学校名称:{
   {
   name}}</h2>

</div>
<script type="text/javascript">
    Vue.config.productionTip=false;
    new Vue({
   
        el:"#root",
        data:{
   
            address:'重庆',
            name:'重庆大学',
        },
    })
</script>
</body>
</html>

在这里插入图片描述

在这里插入图片描述
2、模拟一个数据监测

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模拟一个数据监测(对象)</title>

</head>
<body>
<div id="root">


</div>
<script type="text/javascript">
    let data = {
   
        name: '尚硅谷',
        address: '北京'
    };
    //创建一个监视的实例对象,用于监视data中属性变化
    const obs = new Observer(data);
    console.log(obs);
    //准备一个vm实例
    let vm = {
   };
    vm._data= data = obs;
    function Observer(obj) {
   
        //汇总所有属性形成一个数组
        const keys = Object.keys(obj);
        //遍历
        keys.forEach((k) => {
   
            Object.defineProperty(this, k, {
   
                get() {
   
                    return obj[k];
                },
                set(v) {
   
                    obj[k] = v;
                }
            })
        })
    }
</script>
</body>
</html>

相关推荐

  1. Vue中使用watch监听Vuex数据变化

    2024-01-17 16:16:03       12 阅读
  2. Vue双向数据绑定原理

    2024-01-17 16:16:03       46 阅读
  3. vue - - - - - i18n$t()无法获取数组对象

    2024-01-17 16:16:03       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-17 16:16:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-17 16:16:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-17 16:16:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-17 16:16:03       20 阅读

热门阅读

  1. PyTorch GPU利用率为0%(很低)

    2024-01-17 16:16:03       36 阅读
  2. c语言中指针作函数参数

    2024-01-17 16:16:03       34 阅读
  3. 免费chartGPT网站汇总

    2024-01-17 16:16:03       23 阅读
  4. 向量数据库如何解决大语言模型的“幻觉”问题

    2024-01-17 16:16:03       30 阅读
  5. FreeBSD上安装mysql数据库

    2024-01-17 16:16:03       27 阅读
  6. 【cuda】四、基础概念:Cache Tiled 缓存分块技术

    2024-01-17 16:16:03       29 阅读
  7. Day 37 贪心算法 6

    2024-01-17 16:16:03       37 阅读
  8. c#之枚举类型和结构体

    2024-01-17 16:16:03       30 阅读
  9. Redis面试题15

    2024-01-17 16:16:03       31 阅读
  10. 编程语言的发展未来?

    2024-01-17 16:16:03       35 阅读
  11. 【VTKExamples::PolyData】第二期 曲率

    2024-01-17 16:16:03       30 阅读
  12. openssl3.2 - 官方demo学习 - mac - hmac-sha512.c

    2024-01-17 16:16:03       31 阅读