vue 学习definproperty方法

definproperty方法是Vue很重要的一个底层方法,掌握他的原理很重要,下面通过代码说明问题:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>回顾Object.defineproperty方法</title>
	</head>
	<body>
		<script type="text/javascript" >
			let number = 18
			let person = {
				name:'张三',
				sex:'男',
			}

			Object.defineProperty(person,'age',{
				// value:18,
				// enumerable:true, //控制属性是否可以枚举,默认值是false
				// writable:true, //控制属性是否可以被修改,默认值是false
				// configurable:true //控制属性是否可以被删除,默认值是false

				//当有人读取person的age属性时,get函数(getter)就会被调用,且返回值就是age的值
				get(){
					console.log('有人读取age属性了')
					return number
				},

				//当有人修改person的age属性时,set函数(setter)就会被调用,且会收到修改的具体值
				set(value){
					console.log('有人修改了age属性,且值是',value)
					number = value
				}

			})

			// console.log(Object.keys(person))

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

数据代理小案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数据代理小示例</title>
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <!-- 准备好一个容器 -->
    <div id="root">
        
    </div>
</body>
<script type="text/javascript">
    Vue.config.productionTip = false
    let obj={x:100}
    let obj2= {y:200}

    Object.defineProperty(obj2,'x',{
        get(){
            return obj.x
        },
        set(value){
            obj.x=value
        }
    })
    

</script>
</html>

 

相关推荐

  1. vue 学习definproperty方法

    2024-02-22 02:44:03       62 阅读
  2. Vue】为什么Vue3使用Proxy代替defineProperty

    2024-02-22 02:44:03       54 阅读
  3. VUE3——Proxy API 与VUE2——defineProperty API区别

    2024-02-22 02:44:03       37 阅读
  4. vue2关于Object.defineProperty实现响应式

    2024-02-22 02:44:03       26 阅读
  5. 学习Vue3的defineProps方法

    2024-02-22 02:44:03       55 阅读
  6. Vue3 用 Proxy API 替代 defineProperty API 的那些事

    2024-02-22 02:44:03       67 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-22 02:44:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-22 02:44:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-22 02:44:03       82 阅读
  4. Python语言-面向对象

    2024-02-22 02:44:03       91 阅读

热门阅读

  1. Gradio学习(二)—————学习block布局

    2024-02-22 02:44:03       50 阅读
  2. SpringBoot-将Bean放入容器的五种方式

    2024-02-22 02:44:03       49 阅读
  3. Sora 使用教程,新手小白可用

    2024-02-22 02:44:03       61 阅读
  4. win32 汇编调用C标准库函数

    2024-02-22 02:44:03       52 阅读
  5. SpringBoot+WebSocket实现即时通讯(一)

    2024-02-22 02:44:03       47 阅读
  6. 触发器的类型有哪些?

    2024-02-22 02:44:03       43 阅读
  7. 使用 Spring Authorization Server

    2024-02-22 02:44:03       51 阅读
  8. 计算机软件学习大方向

    2024-02-22 02:44:03       49 阅读
  9. 19 OpenGL计算着色器

    2024-02-22 02:44:03       45 阅读
  10. 浅谈IDEA的目录

    2024-02-22 02:44:03       45 阅读
  11. 象棋笔记()

    2024-02-22 02:44:03       53 阅读
  12. 字符串摘要(C语言)

    2024-02-22 02:44:03       43 阅读