exercises.md 1.8 KB
Newer Older
Z
zhaoss 已提交
1
# 组合式API
Z
zhaoss 已提交
2

Z
zhaoss 已提交
3
<div style="color: pink;font-size:22px;font-weight:700">小常识:</div>
Z
zhaoss 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
<br>

**组合式API**
可以通过调用 useStore 函数,来在 setup 钩子函数中访问 store。这与在组件中使用选项式 API 访问 this.$store 是等效的。

```javascript
import { useStore } from 'vuex'

export default {
  setup () {
    const store = useStore()
  }
}
```

**访问 State 和 Getter**

为了访问 state 和 getter,需要创建 computed 引用以保留响应性,这与在选项式 API 中创建计算属性等效。

```javascript
import { computed } from 'vue'
import { useStore } from 'vuex'

export default {
  setup () {
    const store = useStore()

    return {
      // 在 computed 函数中访问 state
      count: computed(() => store.state.count),

      // 在 computed 函数中访问 getter
      double: computed(() => store.getters.double)
    }
  }
}
```

**访问 Mutation 和 Action**

要使用 mutation 和 action 时,只需要在 setup 钩子函数中调用 commit 和 dispatch 函数。

```javascript
import { useStore } from 'vuex'

export default {
  setup () {
    const store = useStore()

    return {
      // 使用 mutation
      increment: () => store.commit('increment'),

      // 使用 action
      asyncIncrement: () => store.dispatch('asyncIncrement')
    }
  }
}
```

<br>

Z
zhaoss 已提交
66
 <div style="color: blue;font-size:22px;font-weight:700">小测试:</div>
Z
zhaoss 已提交
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87


关于vuex的说法不正确的是?<br/><br/>

## 答案

actions可以直接操作修改state中的数据

## 选项

### A

actions接收到这个事件之后,在actions中可以执行一些异步或同步操作,actions通过commit去触发mutations

### B

通过dispatch去提交一个actions

### C

mutations去更新state数据,state更新之后,就会通知vue进行渲染