VUE 2X 数据代理 ④

这篇具有很好参考价值的文章主要介绍了VUE 2X 数据代理 ④。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


文章有误请指正,如果觉得对你有用,请点三连一波,蟹蟹支持✨

                    ⡖⠒⠒⠒⠤⢄⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸   ⠀⠀⠀⡼⠀⠀⠀⠀ ⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢶⣲⡴⣗⣲⡦⢤⡏⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠋⠉⠉⠓⠛⠿⢷⣶⣦⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠇⠀⠀⠀⠀⠀⠀⠘⡇⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡞⠀⠀⠀⠀⠀⠀⠀⢰⠇⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡴⠊⠉⠳⡄⠀⢀⣀⣀⡀⠀⣸⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠃⠀⠰⠆⣿⡞⠉⠀⠀⠉⠲⡏⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠈⢧⡀⣀⡴⠛⡇⠀⠈⠃⠀⠀⡗⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣱⠃⡴⠙⠢⠤⣀⠤⡾⠁⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢀⡇⣇⡼⠁⠀⠀⠀⠀⢰⠃⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣸⢠⣉⣀⡴⠙⠀⠀⠀⣼⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡏⠀⠈⠁⠀⠀⠀⠀⢀⡇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠃⠀⠀⠀⠀⠀⠀⠀⡼⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⣰⠃⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣀⠤⠚⣶⡀⢠⠄⡰⠃⣠⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢀⣠⠔⣋⣷⣠⡞⠀⠉⠙⠛⠋⢩⡀⠈⠳⣄⠀⠀⠀⠀⠀⠀⠀
⠀⡏⢴⠋⠁⠀⣸⠁⠀⠀⠀⠀⠀ ⠀⣹⢦⣶⡛⠳⣄⠀⠀⠀⠀⠀
⠀⠙⣌⠳⣄⠀⡇   不能   ⡏⠀⠀  ⠈⠳⡌⣦⠀⠀⠀⠀
⠀⠀⠈⢳⣈⣻⡇   白嫖 ⢰⣇⣀⡠⠴⢊⡡⠋⠀⠀⠀⠀
⠀⠀⠀⠀⠳⢿⡇⠀⠀⠀⠀⠀⠀⢸⣻⣶⡶⠊⠁⠀⠀
⠀⠀⠀⠀⠀⢠⠟⠙⠓⠒⠒⠒⠒⢾⡛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣠⠏⠀⣸⠏⠉⠉⠳⣄⠀⠙⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⡰⠃⠀⡴⠃⠀⠀⠀⠀⠈⢦⡀⠈⠳⡄⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣸⠳⣤⠎⠀⠀⠀⠀⠀⠀⠀⠀⠙⢄⡤⢯⡀⠀⠀⠀⠀⠀⠀
⠀⠐⡇⠸⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⡆⢳⠀⠀⠀⠀⠀⠀
⠀⠀⠹⡄⠹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⠸⡆⠀⠀⠀⠀⠀
⠀⠀⠀⠹⡄⢳⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡀⣧⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢹⡤⠳⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣷⠚⣆⠀⠀⠀⠀
⠀⠀⠀⡠⠊⠉⠉⢹⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡎⠉⠀⠙⢦⡀⠀
⠀⠀⠾⠤⠤⠶⠒⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠒⠲⠤⠽   

提示:以下是本篇文章正文内容

V u e j s Vuejs Vuejs


简介 : Vue 是一套用于构建用户界面的 渐进式 框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

  • 官方
  1. 中文 : https://cn.vuejs.org/
  2. 英文 : https://vuejs.org/
  3. Vue2API : https://v2.cn.vuejs.org/
  4. Vue2 相关包 : https://github.com/vuejs/awesome-vue
  5. Vue2 入门安装官方 :https://v2.cn.vuejs.org/v2/guide/installation.html
  6. Vue 相关插件 : https://awesomejs.dev/for/vue/

数据代理


    什么是数据代理❓

<!-- 
	关于Vue中的数据代理:
		1.什么是数据代理?
				(1).配置对象data中的数据,会被收集到vm._data中,然后通过,Object.defineProperty让vm上拥有data中所有的属性。
				(2).当访问vm的msg时,返回的是_data当中同名属性的值
				(3).当修改vm的msg时,修改的是_data当中同名属性的值
		2.为什么要数据代理?
				为了更加方便的读取和修改_data中的数据,不做数据代理,就要:vm._data.xxx访问数据
		3.扩展思考?—— 为什么要先收集在_data中,然后再代理出去呢?
				更高效的监视数据(直接收集到vm上会导致监视效率太低)
-->

    代理底层~ D e f i n e P r o p e r y DefinePropery DefinePropery

学习:Vue底层很多使用Object.DefindPropery属性

作用 :Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。

MDN :https://developer.mozilla.org/zh-CN/Object/defineProperty

基础使用 代码演示 🎊

VUE 2X 数据代理 ④

注意 : 代码演示 🎊

		//如下这么写会形成递归(无限循环)
		//set和get中的this都是当前对象
		/* Object.defineProperty(person,'name',{
			set(value){ //当修改person.name时,set被调用,set会收到修改的值
				console.log('set被调用了',value)
				this.name = value
			},
			get(){//当读取person.name时,get被调用,get的返回值就是name的值
				console.log('get被调用了')
				return 100
			}
		}) */
<!DOCTYPE html>
<html>

<head>
	<meta charset="UTF-8" />
	<title>Object.DefineProperty</title>
</head>

<body>
	<script type="text/javascript">
		let person = {}

		//模拟数据代理
		let _data = { age: 18 }
		let vm = {}

		Object.defineProperty(vm, "age", {
			set(value) {
				_data.age = value //读取vm对象里面的age属性时,获取_data的age属性
			},
			get() {
				return _data.age //修改vm对象的age属性时,会修改_data的age属性
			}
		})
	</script>
</body>

</html>

     V u e Vue Vue数据代理原理理解

原理 :Vue把data里面的数据储存了一份在构造函数上名为_data,当页面(读取 getter/修改 setter)某属性 如name,底层会使用DefinePropery去(读取 \ 修改)_data → data里面的属性。

总结

以上是个人学习Vue的相关知识点,一点一滴的记录了下来,有问题请评论区指正,共同进步,这才是我写文章的原因之,如果这篇文章对您有帮助请三连支持一波文章来源地址https://www.toymoban.com/news/detail-494087.html

到了这里,关于VUE 2X 数据代理 ④的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

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

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

    首先讲一下原生js的数据代理 原生的  Object.defineProperty() 可以通过这个方法动态的为对象添加字段,并未对象字段设置数据代理 vue中的数据代理 这段代码应该见怪不怪了,我们创建vue对象的时候会创建一个data对象传给_data,实际上data和vm中的_data就是完全一样的,我们修改其

    2024年02月17日
    浏览(12)
  • Vue教程(二):数据代理和事件处理

    Vue教程(二):数据代理和事件处理

    数据代理 通过 obj2 操作 obj1 的对象 在浏览器控制台测试结果: 完整代码 总结 使用 v-on:xxx 或 @xxx 绑定事件,其中 xxx 是事件名 事件的回调需要配置在 methods 对象中,最终会在vm上 methods 中配置的函数,不要用箭头函数! 否在this就不是vm了 methods 中配置的函数,都是被vue所管

    2024年02月15日
    浏览(11)
  • Vue之数据代理(getter、setter)

    Vue之数据代理(getter、setter)

    Object.defineProperty 数据代理 (1)实例对象可以通过Object.defineProperty()方法来添加属性,但是添加的属性默认不能删除,不能枚举(不可被遍历),不能修改等。该方法中有get函数和set函数,当有人读取添加的该属性,get函数就会被调用,当有人修改添加的的属性时,set函数就

    2024年02月06日
    浏览(12)
  • 降低 Spark 计算成本 50.18 %,使用 Kyligence 湖仓引擎构建云原生大数据底座,为计算提速 2x

    降低 Spark 计算成本 50.18 %,使用 Kyligence 湖仓引擎构建云原生大数据底座,为计算提速 2x

    2023 中国开源未来发展峰会于 5 月 13 日成功举办。在大会开源原生商业分论坛,Kyligence 解决方案架构高级总监张小龙发表《云原生大数据底座演进 》主题演讲,向与会嘉宾介绍了他对开源发展的见解,数据底座向云原生湖仓一体架构演进的趋势,以及 Kyligence 湖仓引擎能够在

    2024年02月05日
    浏览(10)
  • Vue(数据绑定、el和data多种写法、理解MVVM、数据代理)

    Vue(数据绑定、el和data多种写法、理解MVVM、数据代理)

    1. 单项绑定(v-bind) 数据只能从data流向页面 在输入框中中输入vue实例中的数据没有变化 2. 双向绑定(v-model) 数据能从data流向页面,也可以从页面流向数据 在输入框中中输入vue实例中的数据也会变化,同样改变之后如果存在单项数据绑定也会把数据传给的那箱数据绑定的

    2023年04月23日
    浏览(13)
  • 【VUE前进之路】使用数据代理,计算属性与监视属性的妙用

    【VUE前进之路】使用数据代理,计算属性与监视属性的妙用

    通过一个对象代理对另一个对象中属性的操作(读/写) 1.Vue中的数据代理:通过vm对象来代理data对象中属性的操作(读/写) 2.Vue中数据代理的好处:更加方便的操作data中的数据 3.基本原理:通过0bject . defineProperty( )把data对象中所有属性添加到vm上。为每一一个 添加到vm上的属性

    2024年02月02日
    浏览(8)
  • Vue2和vue3中双向数据绑定的原理,ES6的Proxy对象代理和JavaScript的Object.defineProperty,使用详细

    简介: Object.defineProperty大家都知道,是vue2中双向数据绑定的原理,它 是 JavaScript 中一个强大且常用的方法,用于定义对象属性,允许我们精确地控制属性的行为,包括读取、写入和删除等操作; 而Proxy是vue3中双向数据绑定的原理,是ES6中一种用于创建代理对象的特殊对象,

    2024年02月15日
    浏览(11)
  • vue新学习 02 vue命令v-model,数据代理(作用域和作用域链),事件,监听,条件渲染,计算属性(也就是把操作属性的语句放到vue实例中)

    vue新学习 02 vue命令v-model,数据代理(作用域和作用域链),事件,监听,条件渲染,计算属性(也就是把操作属性的语句放到vue实例中)

    双向绑定用命令v-model: v-bind的命令是单项去绑定data中的相关属性,此时的data是真正的data,并没有用变量声明的方式去接收vue实例对象,也就是例如用const vm = new Vue({})。而是直接就采用了new Vue({})这样子的形式,(v-bind和v-model在这个例子中都是如此,所以现在并没有数据

    2024年02月15日
    浏览(13)
  • 浅谈V2X技术

    浅谈V2X技术

    V2X,即Vehicle to X,这里的X代表everything,一般指人、车、路、云端这四个方面,就是V2P(Pedestrian)、V2V(Vehicle)、V2I(Infrastructure)、V2N(Network)。 V2X有两种通信技术:DSRC和C-V2X。C-V2X中的C指Cellular。 DSRC和C-V2X的区别是: 1. 标准不同:DSRC的通信标准由美国交通部制定的,是IEEE 802.11p;

    2023年04月16日
    浏览(11)
  • 【OMNET++】V2X仿真

    【OMNET++】V2X仿真

    车载无线通信技术V2X即Vehicle to Everything,是在车辆和任何会被该车辆所影响的实体之间分享信息的技术。V2X的主要动机是道路安全、交通效率和节能。 车辆影响实体的分类: Vehicle:对应其他车辆,对应通信V2V,对应设备是OBU(On Board Unit)车载单元 Infrastructure: 对应路边设施,对

    2024年02月02日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包