当前位置:   article > 正文

veux 入门

veux
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import rs from './mutations/mm'
  4. Vue.use(Vuex)
  5. export default new Vuex.Store({
  6. // 全局状态
  7. state: {
  8. num: 22,
  9. user: {
  10. username: "张三",
  11. userage: 20,
  12. },
  13. list: []
  14. },
  15. // 计算属性
  16. getters: {
  17. xuAge(state) {
  18. return state.user.userage + 1
  19. }
  20. },
  21. // 修改数据,状态的方法
  22. mutations: {
  23. upAge(state, p) {
  24. console.log(p);
  25. this.state.user.userage++;
  26. this.state.num += p;
  27. },
  28. getContextList(state, payload) {
  29. state.list = payload
  30. },
  31. ...rs
  32. },
  33. // 异步修改数据方法
  34. actions: {
  35. getjoke(context) {
  36. let httpUrl = 'https://api.apiopen.top/getJoke?page=1&count=10&type=text'
  37. fetch(httpUrl).then((res) => {
  38. console.log(res);
  39. return res.json()
  40. }).then((res) => {
  41. console.log(res);
  42. // 不能直接修改 this.list = res.result(错误) 需要在mutations 中处理
  43. console.log("list:", res.result);
  44. context.commit('getContextList', res.result)
  45. })
  46. }
  47. },
  48. // vuex 细分模块
  49. modules: {
  50. }
  51. })

vx.vue

  1. <template>
  2. <div id="vx">
  3. <h1> vuex test</h1>
  4. <button @click="addage">add</button>
  5. {{ $store.state.user.userage }}
  6. num:{{ num }}
  7. <h1>{{ $store.getters.xuAge}}</h1>
  8. <ul v-for="(item,index) in $store.state.list" :key="index">
  9. {{ item.name}}
  10. <li>
  11. {{ item.text}}
  12. </li>
  13. </ul>
  14. </div>
  15. </template>
  16. <script>
  17. // 辅助函数
  18. import { mapState,mapMutations,mapGetters,mapActions} from 'Vuex'
  19. export default {
  20. mounted(){
  21. // dispatch 触发 actions 方法
  22. // this.$store.dispatch('getjoke')
  23. this.getjoke()
  24. },
  25. // 方法
  26. methods:{
  27. ...mapMutations(['upAge','getContextList']),
  28. ...mapActions(['getjoke']),
  29. addage(){
  30. console.log(this);
  31. // this.$store.commit('upAge',10) 提交到mutations upAge处理
  32. // commit 触发mutations 方法
  33. // this.$store.commit('upAge',10)
  34. this.upAge(2)
  35. }
  36. },
  37. // 计算属性
  38. computed:{
  39. ...mapGetters(['xuAge',]),
  40. ...mapState(['user','num'])
  41. }
  42. }
  43. </script>
  44. <style lang="scss">
  45. $width:375;
  46. @function vw($px){
  47. @return ($px/$width) * 100vw;
  48. }
  49. </style>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/256999
推荐阅读
相关标签
  

闽ICP备14008679号