Vue生命周期及store

1 VUE生命周期:

–beforecreate:初始化之前,刚在内存中被创建
–created data,methods已经创建OK,但还没开始编译模板
–beforeMount:此时已经完成了模板编译,但是还未挂载到页面中,只是在内存中渲染好了
–mounted:此时已经编译好了模板,挂在导论页面指定容器中显示
–beforeUpdata:更新之前执行,此时data中的状态值是最新的,但是界面显示的数据是旧的,因为此时还未开始渲染DOM节点。
–updated:实例更新完毕之后调用此函数,此时 data 中的状态值 和 界面上显示的数据,都已经完成了更新,界面已经被重新渲染好了!
–beforeDestroy:实例销毁之前调用。在这一步,实例仍然完全可用。
–destroyed:Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

2 Vuex中心化管理方案

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化

VUEX原则对于兄弟组件之间的数据通讯就有一定的诟病。当然,在Vue中有其他的方式来处理兄弟组件之间的数据通讯,比如Vuex这样的库。但在很多情况之下,咱们的应用程序不需要类似Vuex这样的库来处理组件之间的数据通讯,而可以考虑Vue中的事件总线,即EventBus。

3 store(Store=State+Mutation)

store 中的四个核心选项: state mutation getters actions

1)state是用来存放组件之间共享的数据,一般会在组件的计算属性中获取state的数据

  1. 在 Vuex store 中,实际改变 状态(state) 的唯一方式是通过提交(commit) 一个 mutation。类似于事件:每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler),其必须为同步函数
    vuex store 是响应式的,当vue组件从store中读取状态(state)时,若store中的状态发生更新时,会及时的响应给其他的组件。
    在组件里提交: this.$store.commit(‘change’, payload)

3)getters下的函数接收state作为第一个参数。getters可以过滤组件中的数据,过滤的数据会存放到$store.getters对象中。
从 store 中的 state 中派生出一些状态.

所解决问题:如果有多个组件需要用到此属性,我们要么复制这个函数,或者抽取到一个共享函数然后在多处导入它

  1. actions:类似于mutation ,但是mutations只能处理同步函数,而actions则是可以处理任何的异步操作
    this.$store.dispatch(‘add’, 5);
    Action 提交的是 mutation,而不是直接变更状态。

5)Module
将 store 分割成模

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值