Count.vue 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <template>
  2. <div>
  3. <h1>当前求和为:{{sum}}</h1>
  4. <h3>当前求和放大10倍为:{{bigSum}}</h3>
  5. <h3>我在{{school}},学习{{subject}}</h3>
  6. <h3 style="color:red">Person组件的总人数是:{{personList.length}}</h3>
  7. <select v-model.number="n">
  8. <option value="1">1</option>
  9. <option value="2">2</option>
  10. <option value="3">3</option>
  11. </select>
  12. <button @click="increment(n)">+</button>
  13. <button @click="decrement(n)">-</button>
  14. <button @click="incrementOdd(n)">当前求和为奇数再加</button>
  15. <button @click="incrementWait(n)">等一等再加</button>
  16. </div>
  17. </template>
  18. <script>
  19. import {mapState,mapGetters,mapMutations,mapActions} from 'vuex'
  20. export default {
  21. name:'Count',
  22. data() {
  23. return {
  24. n:1, //用户选择的数字
  25. }
  26. },
  27. computed:{
  28. //借助mapState生成计算属性,从state中读取数据。(数组写法)
  29. ...mapState('countAbout',['sum','school','subject']),
  30. ...mapState('personAbout',['personList']),
  31. //借助mapGetters生成计算属性,从getters中读取数据。(数组写法)
  32. ...mapGetters('countAbout',['bigSum'])
  33. },
  34. methods: {
  35. //借助mapMutations生成对应的方法,方法中会调用commit去联系mutations(对象写法)
  36. ...mapMutations('countAbout',{increment:'JIA',decrement:'JIAN'}),
  37. //借助mapActions生成对应的方法,方法中会调用dispatch去联系actions(对象写法)
  38. ...mapActions('countAbout',{incrementOdd:'jiaOdd',incrementWait:'jiaWait'})
  39. },
  40. mounted() {
  41. console.log(this.$store)
  42. },
  43. }
  44. </script>
  45. <style lang="css">
  46. button{
  47. margin-left: 5px;
  48. }
  49. </style>