iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue3中proxy的基本用法说明
  • 684
分享到

vue3中proxy的基本用法说明

2024-04-02 19:04:59 684人浏览 薄情痞子
摘要

目录vue3 proxy基本用法新的改变基本使用Vue3中proxy代理理解Proxy代理vue3 proxy基本用法 新的改变 我们的vue3 使用proxy 来代替vue2 的

vue3 proxy基本用法

新的改变

  • 我们的vue3 使用proxy 来代替vue2 的 Object.defineProperty 
  • 效率更高,值得我们学习

基本使用

  <script>
        var target = {
            name: "xiaoming",
            age: 18
        }
        // handler 是一个对象
        const handler = {
            set(target, prop, value) {
                let result = Reflect.set(target, prop, value)
                console.log("设置的操作" + result)
                return true;
            },
            get(target, value) {
                let result = Reflect.get(target, value)
                console.log("获取的的操作" + result)
            }
        }
        let proxy = new Proxy(target, handler);
        proxy.coure = "java"
        console.log(proxy)
    </script>

这个打印效果:

vue3中proxy代理

理解Proxy代理

这里模拟一个伪Vue,使用Proxy代理为响应式

<div id='app'></div>
<script>
	const data = {
		name:'hello',
		age:10
	}
	const vm = new Proxy(data,{
		get(target,p,receiver){
			// 1.target就是代理的data对象
			// 2.p 就是data中的每一个属性(name.age)
			// 3.receiver就是Proxy代理对象本身
			return target[p]
		},
		set(target,p,value,receiver){
			// 1.value就是最新的值
			console.log('receiver:',receiver)
			if(taregt[p]===value) return
			target[p] = value
			document.querySelector('#app').textContent = target[p]
		}
	})
	vm.name = 'hello,vue'
</script>

当我们执行 vm.name = 'hello,vue'时,触发了set方法,此时receiver

再次打印vm,此时,响应的vm对象上的name变成了新的值,说明此时vm的数据变成了响应式的了

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: vue3中proxy的基本用法说明

本文链接: https://www.lsjlt.com/news/149907.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作