VueX

vuex有哪几种属性?

State、Getter、Mutation 、Action、Module 五种
state => vuex的基本数据,存储变量的地方,在组件内一般用computed去接收state
getters => 和 vue 中的 computed 类似 , 都是用来计算 state 然后生成新的数据 ( 状态 ) 的
mutations => 提交更改数据的方法,同步!通过store.commit(‘方法名’,参数)触发
actions => 包裹mutations,使之可以异步。通过store.dispatch(‘方法名’)触发
modules => 模块化Vuex,便于管理

mapState是state的语法糖,初级用法:

computed:{
  mapState({
    fn1(){ return ...},
    fn2(){ return ...},
    fn3(){ return ...}
  })
}
  

高级用法:

computed:{
  ...mapState({
       id: state => state.common.id
   }}

vuex的State特性是?

stae就是存放数据的地方,类似一个仓库 , 特性就是当mutation修改了state的数据的时候,他会动态的去修改所有的调用这个变量的所有组件里面的值( 若是store中的数据发生改变,依赖这个数据的组件也会发生更新 )

vuex的Getter特性是?

getter用来获取数据,mapgetter经常在计算属性中被使用

vuex的Mutation特性是?

Action 类似于 mutation,不同在于:
Action 提交的是 mutation,而不是直接变更状态。
Action 可以包含任意异步操作

3.不使用Vuex会带来什么问题

可维护性会下降,想修改数据要维护三个地方;
可读性会下降,因为一个组件里的数据,根本就看不出来是从哪来的;
增加耦合,大量的上传派发,会让耦合性大大增加,本来Vue用Component就是为了减少耦合,现在这么用,和组件化的初衷相背。

4.Vue.js中ajax请求代码应该写在组件的methods中还是vuex的actions中?

一、如果请求来的数据是不是要被其他组件公用,仅仅在请求的组件内使用,就不需要放入vuex 的state里。
二、如果被其他地方复用,这个很大几率上是需要的,如果需要,请将请求放入action里,方便复用,并包装成promise返回,在调用处用async await处理返回的数据。如果不要复用这个请求,那么直接写在vue文件里很方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值