vue 3.0

Object.defineProperty -> proxy : defineProperty会作用于对象的的属性-get/set , 而Proxy是直接在对象本身上架构一层拦截,颗粒度变大了,由属性到对象。

Function-based API 通过组合函数来编写组件, 引入了新的选项setup(props)  取代了2.0d的data,同样是返回一个对象,并将其暴露给模板。 value() 包装对象,本身是一个响应式数据源,可以追踪对象,并做为依赖,即做到了响应式。 (组合函数中也可以使用生命周期函数***)  打包:对象的属性名不可被压缩,函数是可以的,打包的体积会更小,作为函数,可以被import,这样打包会更加具有弹性,不用的不用被引入,treeshake会把没有用的去除,更加友好。

标准版本:

Object.create(obj) => 如同深拷贝

vue2.0: defineProperty 定义对象的属性,属性中的get和set实现了响应式。

var a = { b: 123, c: 456} Object.defineproperty(a, 'b', {

get: function() {

console.log('get value')

return  no },

set: function(newValue) { }

 

 

vue3:proxy   

var ob = { a: 1, b: 2}   var obj = new proxy(ob, { get: function(target, key, reciver) { return target[key]}, set: function(target,key,newValue,reciver) { target[key] = newValue} })  注意:在使用proxy代理之后,就不能操作原对象了,只能操作被代理的对象。

vue3.0使用proxy的原因是: defineProperty只能监听某个属性,可不能对全部对象进行监听。proxy传递的是整个对象,不用去for in 对象, 可以监听数组,不用去特异的操作了。(.apply(this.arguments))

 

ts: 数组:let array:number[] = [1,2,3] or let array:Array<number> = [1,2,3]  混合数组类型 tuple let tuple:[string, number] = ['q', 1];

enum: 枚举的值是数字类型 == 手动赋值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值