6.18作业

1. watch与watchEffect的区别

  • watch是惰性执行,只有监听的值发生变化的时候才会执行,但是watchEffect每次代码加载都会执行。
  • watch需要传递监听的对象,watchEffect不需要。
  • watch只能监听响应式数据:ref定义的属性和reactive定义的对象,如果直接监听reactive定义对象中的属性是不允许的,除非使用函数转换一下。watchEffect如果监听reactive定义的对象是不起作用的,只能监听对象中的属性。
  • watch需要明确监听哪个属性,watchEffect会根据其中的属性,自动监听其变化。
  • watcheffect初始化时,一定会执行一次(收集要监听的数据,不然不知道监听的是什么),watch只有你设置了初始化监听才会监听(immediate: true,)。

2.pinia和vuex的区别


        1.pinia没有mutations,只有state,getters,actions
        2.pinia分模块不需要modules (之前vuex分模块需要modules)
        3.pinia体积更小(性能更好)
        4.pinia可以直接修改state数据

3. 在vue组件中,data为什么是一个返回对象的函数?


        如果data是对象的话,由于对象是引用类型,组件被复用的话,就会创建多个实例。本质上,这些实例用的都是同一个构造函数。这样就会影响到所有的实例,所以为了保证组件不同的实例之间data不冲突,data必须是一个函数。

4、key的作用


        1、主要是为了高效的更新虛拟DOM,其原理是vue在patch(补丁)过程中通过key可以精准判断两个节点是否是同一个,从而避免频繁更新不同元素,使得整个patch过程更加高效,减少DOM操作量,提高性能。
        2、 另外,若不设置key还可能在列表更新时引发一些隐蔽的bug。如某行数据不该更新的却更新了。
        3、vue中在使用相同标签名元素的过渡切换时,也会使用到key属性,其目的也是为了让vue可以区分它们,否则vue只会替换其内部属性而不会触发过渡效果
-或者--------------------------------------------------------------------------------------
        1- 唯一标识
        2.因为虚拟 dom 有一个 diff 算法,key 是唯一的,不会让数据产生混乱,可以高效更新的虚拟dom
        不建议使用索引作为 key,可以使用唯一 id 作为 key
        原因:如果在一个数组中插入某一个值,vue 识别后会从新分配后续索引,速度变慢, 当
        删除一条数据时,他的索引也会发生变化,会让数据产生混乱


5.vue3. 中pinia有哪些核心属性以及在组件中的使用


        pinia是Vue3中的状态管理库,具有以下核心属性:
        $state:一个ref对象,用于存储状态数据。
        $getters:一个包含所有状态的getter函数的对象。
        $actions:一个包含所有操作状态的action函数的对象。
        在组件中使用pinia,需要通过useStore方法来获取一个与组件相关联的状态管理对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值