
获得徽章 0
- ew-auto-import-tool:一个自动完成vue项目ui组件库按需导入的工具,提升效率,提供rust版本和ts版本,欢迎使用,文档站点已经上线了。210
- ew-responsive-store: 一个轻量级的响应式会话存储库,欢迎使用,有问题提issue,也很欢迎加入贡献,让这个库功能更完善。它的体积不到 1 KB,简单易用,只需要调用一个方法就能将会话存储的数据变成响应式数据,可以广泛应用于各种框架的项目中,甚至是原生 JavaScript 项目,该库还具备完善的单元测试和类型推导。评论3
- Vue3.0 ref和reactive的区别
使用层面:
ref在使用时需要使用.value访问熟悉过,在template中不需要.value
reactive 可以直接访问不需要.value
数据层面:
ref推荐绑定基础类型数据,虽然也可以绑定应用类型数据接收的数据仍然是使用reactive去实现的。
reactive使用Proxy实现数据代理,并且通过Reflect操作源对象内部的数据。
底层方面:
ref是实用createRef创建响应声明,在createRef方法中接受两个参数value和shallow(深或浅),该函数执行完成之后返回了RefImpl,之后利用类的属性访问器,取值的时候track来进行依赖收集,设置值的时候调用trigger去触发更新。属性访问器通过babel转化成es5代码就是defineProperty。
reactive函数中使用createReactiveObject创建响应式对象,reactive接收一个普通对象,reactive接收的是一个对象形式,如果不是对象形式就会抛出一个错误,如果是返回该普通对象的响应式代理,响应式代理是基于基于es6的 Proxy 实现,响应式代理响应式转换是“深层的”,会影响对象内部所有嵌套的属性。然而返回的代理对象不等于原始对象。reactive的时候接收的实际上是个对象,当然也可以接收一个数组,如果目标对象存在并且是一个只读的会直接返回这个对象,否则会创建一个reactive 对象。
总结:
reactive只能接收一个引用对象,不可以传递普通类型的数据,比如字符串、数字等,但是ref可以,因为ref返回的是一个响应式代理对象,这个对象value值就是我们的传递参数。
所以如果是想代理一个对象或者是数组还是使用reactive更合适,如果我们想要代理一个普通类型的值就需要使用ref去代理更合理。展开评论2 - vue学习搭框架必备,集合了所有的vue技术栈,完美适配手机电脑,希望帮助到大家
演示地址:chu1204505056.gitee.io
源码地址:github.com
pc端效果比手机端会好很多,欢迎star展开20115