当前位置: 首页 > news >正文

Vue核心基础1:数据代理

1 回顾Object.defineProperty方法

let str = 'hello'
const person = {name: '张三',age: 18
}

Object.defineProperty(person, 'sex', {// value: '男',// enumerable: true, // 控制属性是否可以枚举,默认值是false// writable: true, // 控制属性是否可以被修改,默认值是false// configurable: true, // 控制属性是否可以被删除, 默认为false// 当有人读取person的sex属性时,get函数就会被调用,且返回值就是sex的值// get: function () {//     return str// }get() {return str},set(value) {// 当有人修改person的sex属性时,set函数就会被调用,且会收到修改的具体值console.log('有人修改了sex属性,且值是', value)str = value}
})

console.log(person)
console.log(Object.keys(person))   // enumerable: true
person.sex = '女'  // writable: true
console.log(person)

2 何为数据代理

通过一个对象代理对另一个对象中属性的操作(读/写)

以下代码就是通过obj2来代理obj :

    <script>let obj = {x: 100}let obj2 = {y: 200}Object.defineProperty(obj2, 'x', {get() {return obj.x},set(value) {obj.x = value}})console.log(obj2.x); // 100obj2.x = 300console.log(obj.x); // 300</script>

 

3 Vue中的数据代理


总结:

            1. Vue中的数据代理:

                通过vm对象来代理data中的属性的操作 (读/写)

            2.Vue中数据代理的好处:

                更加方便地操作data中地数据

            3.基本原理:

                通过Object.defineProperty()把data中所有属性添加到vm上,

                为每一个添加到vm上的属性,都指定一个 getter和setter,

                在getter/setter内部去操作data中对应的属性

相关文章:

Vue核心基础1:数据代理

1 回顾Object.defineProperty方法 let str hello const person {name: 张三,age: 18 } Object.defineProperty(person, sex, {// value: 男,// enumerable: true, // 控制属性是否可以枚举&#xff0c;默认值是false// writable: true, // 控制属性是否可以被修改&#xff0…...

12 ABC串口接收原理与思路

1. 串口接收原理 基本原理&#xff1a;通过数据起始位判断要是否要开始接收的数据&#xff0c;通过采样的方式确定每一位数据是0还是1。 如何判断数据起始位到来&#xff1a;通过边沿检测电路检测起始信号的下降沿 如何采样&#xff1a;一位数据采多次&#xff0c;统计得到高…...

leetcode(二分查找)34.在排序数组中查找元素的第一个和最后一个位置(C++详细解释)DAY11

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target&#xff0c;返回 [-1, -1]。 你必须设计…...

算法刷题框架

前言&#xff1a;最近积累了一些算法题量&#xff0c;正在刷东神的算法笔记&#xff0c;监督自己记录下读后启发&#xff0c;顺便帮助道友们阅读 数据结构 这一部分老生常谈&#xff0c;数据的存储方式只有顺序存储和链式存储。 最基本的数组和链表对应这两者&#xff0c;栈…...

跟着cherno手搓游戏引擎【24】开启2D引擎前的项目总结(包括前置知识汇总)

前置技术&#xff1a; c动态链接和静态链接&#xff1a; 隐藏的细节&#xff1a;编译与链接_哔哩哔哩_bilibili 【底层】动态链接库(dll)是如何工作的&#xff1f;_哔哩哔哩_bilibili 预编译&#xff0c;编译&#xff0c;汇编&#xff0c;链接 预编译头文件&#xff1a; 为…...

石子合并+环形石子合并+能量项链+凸多边形的划分——区间DP

一、石子合并 (经典例题) 设有 N 堆石子排成一排&#xff0c;其编号为 1,2,3,…,N。 每堆石子有一定的质量&#xff0c;可以用一个整数来描述&#xff0c;现在要将这 N 堆石子合并成为一堆。 每次只能合并相邻的两堆&#xff0c;合并的代价为这两堆石子的质量之和&#xff0c;…...

IMX6ULL移植U-Boot 2022.04

目录 目录 1.编译环境以及uboot版本 2.默认编译测试 3.uboot中新增自己的开发板 3.编译测试 4.烧录测试 5.patch文件 1.编译环境以及uboot版本 宿主机Debian12u-boot版本lf_v2022.04 ; git 连接GitHub - nxp-imx/uboot-imx: i.MX U-Boot交叉编译工具gcc-arm-10.3-2021.0…...

ES实战-高级聚合

多桶型聚合 1.词条聚合–terms 2.范围聚合–range 3,直方图聚合–histogram/日期直方图 4.嵌套聚合 5.地理距离聚合 include(包含)exclude(不包含) GET /get-together/_search?pretty {"size": 0,"aggs": {"tags": {"terms": {"…...

网络安全产品之认识蜜罐

文章目录 一、什么是蜜罐二、蜜罐的主要类型三、蜜罐的主要功能四、蜜罐的主要组成及核心技术五、蜜罐的优缺点六、蜜罐如何与其他安全工具协同工作&#xff1f;七、什么是“蜜网”&#xff1f;与蜜罐的联系和区别是什么&#xff1f; 蜜罐的概念首次由Clifford Stoll在其1988年…...

推荐《架构探险:从零开始写Java Web框架》

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 春节读了《架构探险&#xff1a;从零开始写Java Web框架》&#xff0c;一本大概10年前的好书。 本书的作者是阿里巴巴架构师黄勇。黄勇对分布式服务架构与大数据技术有深入…...

Go教程-Go语言简介

这篇文章我们来聊聊Go语言。 Go语言发展历史 以下是Go语言发展的几个里程碑节点&#xff1a; Go一开始是Google内部的一个项目&#xff0c;由三位大佬Rob Pike、Robert Griesemer、Ken Thompson早2007年发起。在2009年11月&#xff0c;Go语言正式对外开源。在2010年&#xf…...

React + SpringBoot + Minio实现文件的预览

思路&#xff1a;后端提供接口&#xff0c;从minio获取文件的预览链接&#xff0c;返回给前端&#xff0c;前端使用组件进行渲染展示 这里我从minio获取文件预览地址用到了一个最近刚开源的项目&#xff0c;挺好用的&#xff0c;大伙可以试试&#xff0c;用法也很简单 官网&am…...

心法利器[107] onnx和tensorRT的bert加速方案记录

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会&#xff0c;与大家一起成长。具体介绍&#xff1a;仓颉专项&#xff1a;飞机大炮我都会&#xff0c;利器心法我还有。 2023年新一版的文章合集已经发布&#xff0c;获取方式看这里&#xff1a;又添十万字-CS的陋室2…...

AcWing 122 糖果传递(贪心)

[题目概述] 有 n 个小朋友坐成一圈&#xff0c;每人有 a[i] 个糖果。 每人只能给左右两人传递糖果。 每人每次传递一个糖果代价为 1。 求使所有人获得均等糖果的最小代价。 输入格式 第一行输入一个正整数 n&#xff0c;表示小朋友的个数。 接下来 n 行&#xff0c;每行一个…...

unity的重中之重:组件

检查器&#xff08;Hierarchy&#xff09;面板中的所有东西都是组件。日后多数工作都是和组件打交道&#xff0c;包括调参、自定义脚本组件。 文章目录 12 游戏的灵魂&#xff0c;脚本组件13 玩转脚本组件14 尽职的一生&#xff0c;了解组件的生命周期15 不能插队&#xff01;…...

Linux释放内存

free -m是Linux上查看内存的指令&#xff0c;其中-m是以兆&#xff08;MB&#xff09;为单位&#xff0c;如果不加则以KB为单位。 如下图表示&#xff0c;&#xff08;total&#xff09;总物理内存是809MB&#xff0c;&#xff08;used&#xff09;已使用167MB&#xff0c;&…...

Python算法题集_翻转二叉树

Python算法题集_翻转二叉树 题226&#xff1a;翻转二叉树1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【DFS递归】2) 改进版一【BFS迭代&#xff0c;节点循环】3) 改进版二【BFS迭代&#xff0c;列表循环】 4. 最优算法 本文为Python算法题集…...

Git快速掌握,通俗易懂

Git分布式版本控制工具 介绍 Git是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。Git是由Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。Git可以帮助开发者们管理代码的版本&#xff0c;避免代码冲突&#…...

PHP毕业设计图片分享网站76t17

图片分享网站主要是为了提高工作人员的工作效率和更方便快捷的满足用户&#xff0c;更好存储所有数据信息及快速方便的检索功能&#xff0c;对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定考虑用户的可操作性&#xff0c;遵循开发的系统优化的原则&#xff0c;…...

代码随想录 Leetcode45. 跳跃游戏 II

题目&#xff1a; 代码(首刷看解析 2024年2月15日&#xff09;&#xff1a; class Solution { public:int jump(vector<int>& nums) {if (nums.size() 1) return 0;int res 0;int curDistance 0;int nextDistance 0;for (int i 0; i < nums.size(); i) {nex…...

告别混乱!Flink指标报告选型指南:Graphite、InfluxDB、Prometheus、StatsD到底怎么选?

Flink监控体系选型实战&#xff1a;Graphite、InfluxDB、Prometheus与StatsD深度对比 当Flink集群从测试环境走向生产环境时&#xff0c;监控指标的可视化与分析能力直接关系到系统的稳定性和运维效率。面对Graphite、InfluxDB、Prometheus和StatsD这四种主流指标报告方案&…...

保姆级教程:用PaddlePaddle的PP-LiteSeg在Cityscapes数据集上实现实时语义分割

从零实现PP-LiteSeg&#xff1a;Cityscapes实时语义分割全流程实战 1. 环境配置与数据准备 在开始PP-LiteSeg的实战之前&#xff0c;我们需要搭建完整的开发环境。推荐使用Anaconda创建独立的Python环境以避免依赖冲突&#xff1a; conda create -n paddleseg python3.8 conda …...

FFXIV TexTools:掌握《最终幻想14》模组制作的终极指南

FFXIV TexTools&#xff1a;掌握《最终幻想14》模组制作的终极指南 【免费下载链接】FFXIV_TexTools_UI 项目地址: https://gitcode.com/gh_mirrors/ff/FFXIV_TexTools_UI FFXIV TexTools是一款专为《最终幻想14》玩家设计的专业模组制作与管理框架&#xff0c;自2016年…...

手把手教你用Cubic为团队批量定制Ubuntu服务器模板镜像(含安全加固步骤)

企业级Ubuntu镜像定制实战&#xff1a;基于Cubic的自动化安全加固方案 在DevOps和云原生技术普及的今天&#xff0c;标准化系统镜像已成为企业IT基础设施的关键组成部分。想象一下这样的场景&#xff1a;当新服务器上线或集群需要扩容时&#xff0c;运维团队不再需要逐台安装系…...

为Cursor IDE定制AI代码生成规则:打造波士顿动力级精准开发助手

1. 项目概述&#xff1a;一个为Cursor定制的波士顿动力风格代码生成器如果你和我一样&#xff0c;每天都在和代码编辑器打交道&#xff0c;尤其是深度使用Cursor这款AI驱动的IDE&#xff0c;那你一定对“如何让AI更懂我”这件事有执念。Cursor自带的代码补全和生成能力已经很强…...

别再被Windows权限卡脖子!用`--user`参数搞定pip安装报错(附详细排查步骤)

彻底解决Windows下Python包安装权限问题&#xff1a;从--user参数到环境配置全攻略 在Windows系统上进行Python开发时&#xff0c;许多开发者都曾遭遇过这样的尴尬时刻&#xff1a;当你满怀期待地输入pip install package_name准备安装一个新工具时&#xff0c;屏幕上却突然跳出…...

S32K3开发板三色LED点灯实战:从引脚配置到代码烧录的保姆级避坑指南

S32K3开发板三色LED点灯实战&#xff1a;从引脚配置到代码烧录的保姆级避坑指南 当一块崭新的S32K3开发板摆在面前&#xff0c;闪烁的LED往往是开发者与之对话的第一个"Hello World"。本文将带你用最直观的方式——控制RGB三色灯&#xff0c;快速建立对NXP这款车规级…...

2023B卷,跳格子(1)

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:华为OD面试 文章目录 一、🍀前言 1.1 ☘️题目详情 1.2 ☘️参考解题答案 一、🍀前言 2023B卷,跳格子(1) 。 1.1 ☘️题目详情 题目: 小明和朋友…...

5分钟掌握ncmdumpGUI:将网易云ncm文件转换为MP3的完整解决方案

5分钟掌握ncmdumpGUI&#xff1a;将网易云ncm文件转换为MP3的完整解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾为网易云音乐下载的ncm文件…...

Overleaf实战:利用multicol宏包实现LaTeX文档的灵活分栏布局

1. 为什么需要分栏布局&#xff1f; 第一次用LaTeX写论文时&#xff0c;我被期刊模板要求"双栏排版"整懵了。单栏文档写得好好的&#xff0c;突然要在同一页并排显示两列内容&#xff0c;还要处理图片表格的跨栏问题。传统\twocolumn命令虽然简单&#xff0c;但调整…...