💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] ## 1.vuex的工作原理 ``` 1.在vue组件里面,通过dispatch来触发actions提交修改数据的操作。 2.然后再通过actions的commit来触发mutations来修改数据。 3.mutations接收到commit的请求,就会自动通过Mutate来修改state(数据中心里面的数据状态)里面的数据。 4.最后由store触发每一个调用它的组件的更新 Vuex的作用:项目数据状态的集中管理,复杂组件(如兄弟组件、远房亲戚组件)的数据通信问题 methods: { handleClick(event){ this.$store.dispatch("changeLetter",event.target.innerText); } }, action{ chageLetter(ctx,letter){ ctx.commit("changeleter",letter) } } mutations{ changeletter(state,letter){ state.letter = letter } } 页面调用this.$store.state.letter ``` ## 2.小程序父子传参 ``` 子: this.triggerEvent( '事件‘,{参数}) 父: bind:事件="定义一个事件" 定义事件:传event ,通过 event,detail.参数 ``` ``` 父:通过属性传参 **phone=”{{phone}}”** 子:在 properties里接参数 ``` ## 3.vue缓存 ``` keep-alive activated/deactivated 激活停用时触发 include 和 exclude 属性允许组件有条件地缓存 ``` ## 4. vue中watch和computed的区别 ``` watch主要是监听数据变化,可以监听数据来源的三个部分:props,data,computed内的数据,然后它还提供两个参数(new,old),顺序一定是新值、旧值。 computed主要是处理逻辑运算,computed来存储需要处理的数据值,它有存储的机制,只有改变时才执行。 ``` ## 4.深拷贝的方法 ``` 展开,slice ,concat,for in ``` ## 3.vue的生命周期 生命周期钩子的一些使用方法: beforecreate : 可以在这加个loading事件,在加载实例时触发 created : 初始化完成时的事件写在这里,如在这结束loading事件,异步请求也适宜在这里调用 mounted : 挂载元素,获取到DOM节点 updated : 如果对数据统一处理,在这里写上相应函数 beforeDestroy : 可以做一个确认停止事件的确认框 nextTick : 更新数据后立即操作dom 创建前/后: 在beforeCreated阶段,[vue](https://www.baidu.com/s?wd=vue&tn=24004469_oem_dg&rsv_dl=gh_pl_sl_csd)实例的**挂载元素**`$el`和\*\*数据对象\*\*data都为undefined,还未初始化。在created阶段,vue实例的数据对象data有了,`$el`还没有。 载入前/后:在beforeMount阶段,vue实例的`$el和data`都初始化了,但还是**挂载之前**为**虚拟的dom节点**,**data.message**还未替换。在mounted阶段,vue实例挂载完成,**data.message成功渲染**。 更新前/后:当data变化时,会触发**beforeUpdate和updated**方法。 销毁前/后:在执行destroy方法后,对data的改变不会再触发周期函数,说明此时vue实例已经解除了`事件监听`以及和`dom的绑定`,但是`dom结构`依然存在