Person.vue 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <template>
  2. <div>
  3. <h1>人员列表</h1>
  4. <h3 style="color:red">Count组件求和为:{{sum}}</h3>
  5. <h3>列表中第一个人的名字是:{{firstPersonName}}</h3>
  6. <input type="text" placeholder="请输入名字" v-model="name">
  7. <button @click="add">添加</button>
  8. <button @click="addWang">添加一个姓王的人</button>
  9. <button @click="addPersonServer">添加一个人,名字随机</button>
  10. <ul>
  11. <li v-for="p in personList" :key="p.id">{{p.name}}</li>
  12. </ul>
  13. </div>
  14. </template>
  15. <script>
  16. import {nanoid} from 'nanoid'
  17. export default {
  18. name:'Person',
  19. data() {
  20. return {
  21. name:''
  22. }
  23. },
  24. computed:{
  25. personList(){
  26. return this.$store.state.personAbout.personList
  27. },
  28. sum(){
  29. return this.$store.state.countAbout.sum
  30. },
  31. firstPersonName(){
  32. return this.$store.getters['personAbout/firstPersonName']
  33. }
  34. },
  35. methods: {
  36. add(){
  37. const personObj = {id:nanoid(),name:this.name}
  38. this.$store.commit('personAbout/ADD_PERSON',personObj)
  39. // personAbout/ADD_PERSON:斜杠前面为分类名,后面为mutations里的名称
  40. this.name = ''
  41. },
  42. addWang(){
  43. const personObj = {id:nanoid(),name:this.name}
  44. this.$store.dispatch('personAbout/addPersonWang',personObj)
  45. this.name = ''
  46. },
  47. addPersonServer(){
  48. this.$store.dispatch('personAbout/addPersonServer')
  49. }
  50. },
  51. }
  52. </script>