6.18作业

1. watch与watchEffect的区别


        与 watchEffect() 相比,watch() 使我们可以:懒执行副作用:watch是懒侦听执行的;watchEffect是首次就会执行
        触发侦听器的来源:watch是明确知道由哪个依赖引起的侦听,watchEffect不明确
        可以访问所侦听状态的前一个值和当前值:watch可以,watchEffect不可以。

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方法来获取一个与组件相关联的状态管理对象。

你可能感兴趣的:(每日作业,数学建模)