接下来讲一讲Vue的数据代理

news2024/10/7 8:25:44

首先讲一下原生js的数据代理

原生的 Object.defineProperty()

        
        let aa = 'wewew'
        let person = {
            name: "王李斌",
            age: 12
        }
Object.defineProperty(person, "address", {
            // value: 14, 给字段设置值
            //enumerable:true, 设置动态设置的字段为可以遍历
            //writable:true, 设置动态设置的字段为可以修改
            //configurable:true, 设置动态设置的字段为可以删除
            get() {
                return aa
            }
            set(value){
           aa='wlb'

        }
        })

可以通过这个方法动态的为对象添加字段,并未对象字段设置数据代理

vue中的数据代理

        const x = new Vue({
            el: "#root",
            data: {
                name: "你爸爸",
                age: 14,
                app: "http://baidu.com"
            }
        })

 

这段代码应该见怪不怪了,我们创建vue对象的时候会创建一个data对象传给_data,实际上data和vm中的_data就是完全一样的,我们修改其中一个,另一个的值也会变,其实我们写到这vue也是可以帮我们自动刷新页面修改数据的,看如下代码:

<body>
    <div id="root">
        <h1>hello,{{_data.name}}</h1>
        <h1>年龄,{{_data.age}}</h1>
        <a v-bind:href="app">点我</a>
        <input type="number" v-model="_data.age">
    </div>
    <script>
        Vue.config.productionTip = false

        const x = new Vue({
            el: "#root",
            data: {
                name: "你爸爸",
                age: 14,
                app: "http://baidu.com"
            }
        })
        // x.$mount('#root')
    </script>

</body>

我们都知道在vue的模板中,我们可以直接访问vm对象中的所有参数,那我们可以直接访问vm中的_data来访问具体的参数,当修改data参数时,页面一样会刷新,那么和我们说的数据代理有什么关系的,当然有关系,如果都像{{_data.name}}这么写,岂不是要麻烦死,于是vue就通过 Object.defineProperty()帮我们把data的中的所有参数都在vm对象中重新创建了一份,并且通过它的get方法和set方法,指向了vm对象中的_data中的对应参数,这样我们在写的时候就可以直接写成{{name}},帮我们简化了编写的方式

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/767713.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker 镜像解密:分层存储与构建原理多角度解析

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

超声波水表的优势

超声波水表是一种新型的水表&#xff0c;它采用超声波测流技术&#xff0c;能够实现对水流的非接触式测量&#xff0c;具有许多优势。下面将从多个方面来介绍超声波水表的优势。 一、高精度 由于超声波测流技术采用的是非接触式测量&#xff0c;因此不会受到水流的摩擦、涡流等…

【C++】C++11 (3): lambda表达式和包装器

一、lambda表达式 C98中的一个例子 在C98中&#xff0c;如果想要对一个数据集合中的元素进行排序&#xff0c;可以使用std::sort方法。 #include <algorithm> #include <functional> int main() {int a[] { 4,1,8,5,3,7,0,9,2,6 };// 默认按照小于比较&#xff…

S32 Design Studio for ARM(S32DS)下载和安装

1. S32 Design Studio for ARM 介绍 S32 Design Studio for ARM&#xff08;下面简称S32DS&#xff09;&#xff0c;是 NXP 官方在 2014 年官方推出的&#xff0c;专门面向 S32K、KEA、MAC57D54H等系列微控制器的集成开发环境。 S32DS是由Eclipse和一些插件集成而来的开发平台…

自来水收费系统适合应用于哪些场景?

自来水收费系统是一种用于自来水公司或供水管理部门的软件系统&#xff0c;旨在帮助自动化自来水的收费和管理过程。该系统可以帮助自来水公司更好地管理水资源&#xff0c;提高供水质量和效率&#xff0c;同时也可以为用户提供更加便捷和安全的用水服务。下面将从多个方面来介…

centos7通过epel源安装redis

目录 一、下载epel源 二、下载并且启动 一、下载epel源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 二、下载并且启动 yum install redis systemctl enable --now redis

c代码和c++代码互相调用

note 不管是c代码调用c代码&#xff0c;还是c代码调用c代码&#xff0c;本质上都是g兼容gcc的功能 c代码调用c代码 lib.h #ifndef _LIB_H_void libfun(void);#endif lib.c #include <stdio.h> #include "lib.h"void libfun(void) {printf("this is i…

Intel nuc 清除cmos密码

设备为intel nuc7&#xff0c;其他版本可以参考&#xff0c;步骤如下 1、找到主板上的bios_sec的三针跳线 2、将跳线开关取下 3、按住电源键3秒&#xff0c;电源指示灯变为橙色后松手 4、耐心等待显示器显示bios recovery倒计时画面 5、按esc取消bios recovery 6、显示器显…

Oss文件上传-简化版

这里使用的是element的上传组件&#xff0c;相关上传钩子看官网 一、获取到oss后台相关的签名数据 建议通过接口获取 二、上传 //获取oss相关参数// getOsstokenasync beforeUploadMasterImg(file) {console.log("点击上传");await this.getOssSingnature(file);},…

这7款UI设计工具值得一试!

在设计工作中&#xff0c;UI设计更注重于人和产品互动式时的交互效果&#xff0c;也就是页面内容丰富程度。无论是想打造哪种风格的UI设计界面&#xff0c;这个过程都离不开好用的UI设计工具&#xff0c;本文总结了7款年度好用的UI设计工具&#xff0c;能帮助设计师更轻松地创作…

压裂工艺原理简述

一、压裂程序 1. 压裂概念 在石油领域&#xff0c;压裂是指采油或采气过程中&#xff0c;利用水力作用&#xff0c;使油气层形成裂缝的一种方法&#xff0c;又称水力压裂。压裂是人为地使地层产生裂缝&#xff0c;改善油在地下的流动环境&#xff0c;使油井产量增加&#xff…

【kubernetes系列】kubernetes之计算资源管理

资源类型 在 Kubernetes 中&#xff0c;Node 提供资源&#xff0c;而 Pod 使用资源。其中资源分为计算&#xff08;CPU、Memory、GPU&#xff09;、存储&#xff08;Disk、SSD&#xff09;、网络&#xff08;Network Bandwidth、IP、Ports&#xff09;。这些资源提供了应用运行…

DIN - 序列模型之深度兴趣网络(阿里)

&#x1f525; DIN来自于 阿里 盖坤团队 在 KDD-2018 发的论文《Deep Interest Network for Click-Through Rate Prediction》。该模型在当时已经应用于阿里的电商广告推荐业务&#xff0c;效果不错。 文章目录 1、介绍&#xff1a;2、单值特征 & 多值特征&#xff1a;3、动…

共筑信创生态!亚信科技AntDB数据库与用友、东方通、星辰天合达成兼容互认

近日&#xff0c;亚信科技AntDB数据库与用友U8 cloud、东方通应用服务器TongWeb V7.0、星辰天合全产品体系完成兼容适配。经测试&#xff0c;AntDB数据库与U8 cloud产品&#xff0c;TongWeb V7.0服务器&#xff0c;星辰天合天合翔宇分布式存储系统、统一数据平台XEDP、超融合平…

分析分布式架构-技术

分布式系统的主要目的 提高系统的性能 提高吞吐量&#xff0c;服务更多的客户。提高并发和流量。 通过以下的技术提高处理高并发场景的能力 缓存系统&#xff0c;更快的响应客户端的请求。降低对数据库的压力(提高响应速度) 前端浏览器&#xff0c;网络&#xff0c;后端服务&a…

深入理解Linux网络——TCP连接的开销

文章目录 一、相关实际问题二、Linux内核如何管理内存1&#xff09;node划分2&#xff09;zone划分3&#xff09;基于伙伴系统管理空闲页面4、slab分配器5&#xff09;小结 三、TCP连接相关内核对象1&#xff09;socket函数直接创建1. sock_inode_cache对象申请2. tcp对象申请3…

自建sqlserver迁移到aliyun的rds for sqlserver实战

大家好&#xff0c;在实际中有些客户有上云的需求&#xff0c;需要把线下自建的sqlserver迁移至aliyun的rds for sqlserver。大家第一时间想到的是用dts工具&#xff0c;根据工作经验&#xff0c;DTS迁移mysql类的数据库比较成熟&#xff0c;但是迁移sqlserver之类会有问题。首…

二本逆互联网大厂! 高薪就业

【二本屌丝也能逆袭&#xff01;毕业四年从小公司到大厂之路&#xff0c;这就是我的逆袭&#x1f680;✨】 大家对如何逆袭互联网大厂而感到惊讶&#xff1f;作为计算机专业的大学生&#xff0c;想必你对于进入互联网行业有很多的期望和追求。但是面对激烈的竞争和复杂的招聘要…

wasserstein distance简单记录

W a s s e r s t e i n Wasserstein Wasserstein d i s t a n c e distance distance一般被称为推土距离&#xff0c;假设有两个分布 P ( x ) P(x) P(x)和 Q ( y ) Q(y) Q(y) &#xff0c;两个分布间的推土距离为&#xff1a; W ( P , Q ) inf ⁡ γ ∈ Π ( P , Q ) E ( x ,…

深度学习trick

本次Tricks主要面向于深度学习中计算机视觉方向的研究&#xff0c;分为数据增广方法、训练技巧&#xff0c;参数调节这三个方面进行深入的分析。内容有一部分是基于openmmlab的mmdet和mmseg两个框架上的成熟应用案例进行详细阐述。 首先是数据增广的tricks&#xff1a; 0、Fli…