首页 > 其他分享 >Vue(六):数据代理

Vue(六):数据代理

时间:2023-06-23 17:46:07浏览次数:28  
标签:Vue name age 代理 let 数据 属性

一、js中的Object.defineProptry方法

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>回顾Object.definePropetry方法</title>
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <script type="text/javascript">

            let number = 0;

            //创建一个对象
            let person = {
                name: "张三",
                sex: "男"
            }

            /*
            这个方法是对对象的属性进行定义
            需要传入三个参数:1.对象 2.属性 3.配置
            */
            Object.defineProperty(person, "age", {
                
                //这是一些基础的配置属性
                // value: 18, //属性的值
                // enumerable: true, //控制属性是否可以被枚举(遍历),默认为false
                // writable: true, //控制属性是否可以被修改,默认为false
                // configurable: true, //控制属性是否可以被删除,默认为false
                

                //这是更高级一些的配置属性
                //当有人要获取person的age属性时,get方法(getter)调用,返回age的值
                get() {
                    return number;
                },
                //当有人要修改person的age属性时,set方法(setter)调用,对age的值进行修改
                set(value) {
                    number = value;
                }
            })

            console.log(person)
        </script>
    </body>
</html>

二、什么是数据代理

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>什么是数据代理</title>
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>

    <body>
        <script type="text/javascript">

            //被代理数据
            let landlord = {
                name: "房东",
                price: 3000    
            }
            //代理数据
            let proxy = {
                name: "中介"
            }

            Object.defineProperty(proxy, "price", {
                get() {
                    return landlord.price
                },
                set(value) {
                    landlord.price = value
                }
            })
        </script>
    </body>
</html>

数据代理就是通过一个对象来操作另一个对象的数据(属性)。

三、Vue中的数据代理

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Vue中的数据代理</title>
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>

    <body>
        <div id="root">
            <h1>姓名:{{name}}</h1>
            <h1>年龄:{{age}}</h1>
        </div>
    </body>
    
    <!--
        Vue中的数据代理:
            1.Vue在什么地方用到了数据代理呢?
            前面提到过Vue将data对象中的属性添加为vm的属性,这里使用的就是数据代理,用vm的属性来代理data对象中的属性。
            2.data数据放在什么地方?
            data数据放在vm中的一个名为 _data 的属性中。
            _data实际上就是data,但是_data在data地基础上添加了一些新的东西(数据劫持)
            3.Vue数据代理的好处?
            因为data对象的数据实际上在vm是存在的(_data中),所以如果不使用数据代理,直接使用 {{_data.XXX}} 的形式一样可以去的数据,但是过于繁琐。
            使用数据代理就是为了更加方便直接地操作数据。
            4.Vue中数据代理地基本原理
            通过Object.defineProperty方法将_data中的属性添加到vm上,为每一个属性都添加一个getter和setter,使用getter和setter操作_data中的数据。
    -->

    <script type="text/javascript">
        let vm = new Vue({
            el: "#root",
            data: {
                name: "张三",
                age: 18
            }
        })
    </script>
</html>

 Vue数据代理示意图

 

(本文仅作个人学习记录用, 如有纰漏敬请指正)

标签:Vue,name,age,代理,let,数据,属性
From: https://www.cnblogs.com/jmsstudy/p/17499356.html

相关文章

  • Vue进阶(贰零零):window.onresize事件在vue项目中的应用
    属性window.onresize属性可以用来获取或设置当前窗口的resize事件的事件处理函数。在窗口大小改变之后,就会触发resize事件.//vue页面<template><divid='echart'>报表</div></template><script>exportdefault{data(){return{};......
  • Vue.js 过渡和动画
    学习目录:Vue.js简介Vue.js实例与数据绑定Vue.js计算属性和侦听器Vue.js条件渲染和列表渲染Vue.js事件处理Vue.js表单输入绑定Vue.js组件基础Vue.js组件通信Vue.js插槽Vue.js动态组件和异步组件Vue.js自定义指令Vue.js过渡和动画Vue.js混入Vue.js自定义事件和v-model......
  • 【电商平台拼多多api接口】根据ID获取商品详情原数据API返回值说明
    前言拼多多商品详情原数据API接口的作用是获取拼多多平台上某个商品的详细信息,包括商品标题、价格、图片、规格、参数、店铺信息等。开发者可以通过该接口获取到商品的原始数据,方便进行数据分析、价格比较、爬取等操作。通过该接口获取到的商品详情数据可以结合其他数据进行深度挖......
  • 通过商品ID获取当当网商品详情数据,当当商品详情接口,当当商品 API 接口
    获取当当网的商品详情数据需要使用其提供的API接口。您需要先注册当当开放平台账号,获得授权并获取API接口的调用凭证,然后按照API文档中的要求进行数据获取操作。以下是大致的步骤:注册当当开放平台账号,并按照要求提交申请获取API接口的调用凭证。获得授权后,您将会收到一组A......
  • 淘宝API商品详情(爬虫数据)
    为了进行淘宝的API开发,首先我们需要做下面几件事情。1)开发者注册一个账号,2)然后为每个淘宝应用注册一个应用程序键(AppKey)。3)下载淘宝API的SDK并掌握基本的API基础知识和调用。4)利用SDK接口和对象,传入AppKey或者必要的时候获取并传入SessionKey来进行程序开发。5)利用淘宝平台的文......
  • 【电商平台拼多多api接口】根据ID获取商品详情原数据API返回值说明
    ​前言拼多多商品详情原数据API接口的作用是获取拼多多平台上某个商品的详细信息,包括商品标题、价格、图片、规格、参数、店铺信息等。开发者可以通过该接口获取到商品的原始数据,方便进行数据分析、价格比较、爬取等操作。通过该接口获取到的商品详情数据可以结合其他数据进行......
  • 淘宝天猫商品详情API接口(商品详情页面数据接口,商品销量接口)
    淘宝商品详情API接口,淘宝商品销量接口,淘宝商品价格接口,淘宝商品列表接口,淘宝商品数据列表接口,淘宝关键词搜索列表接口,淘宝APP详情接口,淘宝APP商品详情接口,淘宝H5详情接口,天猫商品详情API接口,天猫商品销量接口,天猫商品价格接口,天猫商品列表接口,天猫商品数据接口,一键复制淘宝商品接口......
  • 【抖店商品详情API接口系列】抖店商品详情数据item_get
    作为现国内最大的平台之一,抖店数据采集具有多个维度。有人需要采集商品信息,包括品类、品牌、产品名、价格、销量等字段,以了解商品销售状况、热门商品属性,进行市场扩大和重要决策;有人需要采集产品评论,以明确产品优缺点、市场意向,进行新商品调研优化;除了以上之外,还有很多的应用场......
  • 数据介绍
    合成数据用函数3生成的。20000个像素,是用e_t目标端元跟E_minus混合而成的。如果像素对应为1说明含有目标端元,为0说明没有目标端元。一共就4个端元。其中1个是目标。N_b包的种类2:1个正包1个负包n_tar:10个目标源num_nbags:负包数num_pbags:正包数num_points:包中的点labels:是正包和负包......
  • 智能问答-问题生成(QG)历史最全论文、综述、数据集整理分享
        QuestionGeneration(问题生成),简单理解就是“主动提问”的AI应用场景,是QuestionAnswer(QA)一个子领域。QG的应用还是挺广泛的,像是为QA任务产生训练数据、自动合成FAQ文档、自动辅导系统(automatictutoringsystems)等。    传统工作主要是利用句法树或者知识库,基于规......