首页 前端知识 vue中的VueX详解及使用_vuex详解和用法

vue中的VueX详解及使用_vuex详解和用法

2024-07-22 01:07:43 前端知识 前端哥 379 422 我要收藏

store,//在main.js中导入store实例
  components: { App },
  template: ‘’
})

5. 之后按要求编码,即可使用vuex的相关功能

vuexPage1.vue

             

页面1:欢迎来到{{msg}}

    

6.配置路由

import vuexPage1 from ‘@/views/sys/vuexPage1’


{
                path: ‘/sys/vuexPage1’,
                name: ‘vuexPage1’,
                component: vuexPage1
            }

7.展示结果

五、vuex取值

1.在state.js编写全局要读取的数据

export default{
      resturantName:‘慧慧餐馆’
}

2.在VuexPage1和VuexPage2中填写计算属性

computed:{//计算属性
     msg(){
     //return “KFC”;
       return this.$store.state.resturantName;
     }
  }

结果:

vuex第二种取值方法:

1.Getterts.js

export default{
    getResturanName:(state)=>{
        return state.resturantName;
    }

}

2.调用

computed:{//计算属性
     msg(){
     //return “KFC”;
       //return this. s t o r e . s t a t e . r e s t u r a n t N a m e ;     ∗ ∗ r e t u r n t h i s . store.state.resturantName;     **return this. store.state.resturantName;   returnthis.store.getters.getResturanName;//推荐使用这种**
     }
  }

六、vuex存值

1.处理数据的唯一途径,state的改变或赋值只能在这里Mutation.js

export default{
     // type(事件类型): 其值为setResturantName
     // payload:官方给它还取了一个高大上的名字:载荷,其实就是一个保存要传递参数的容器
    setResturanName:(state,payload)=>{
        state.resturantName=payload.resturantName;
    }
}

2.在VuexPage1中添加一个按钮来控制,并且调用Mutation
             

页面1:欢迎来到{{msg}}

       **

运行结果:

七、Vuex异步加载

1.编写store/Action.js

export default{
    setResturanNameAsync:(context,payload)=>{
        //context等价与this.$store,也就是他代表了vuex的上下文
        //state.resturantName=payload.resturantName;
    //在这个文件中是可以调用同步文件mutation.js定义的同步方法
    //context.commit(“setResturanName”,payload);
    //为了让结果明显
    setTimeout(function(){
        context.commit(“setResturanName”,payload);//同步里面调异步
    },6000);
    }
}

2.在VuexPage1中调用Action.js中的setResturantNameAsync

<button @click=“nxAsync”>最后主人


nxAsync(){
        this.$store.dispatch(“setResturanNameAsync”,{//载荷
            resturantName:“最后的主人”
        })
        }

3.输出结果

八、后台交互

1.在store/Mutation.js中编写doAjax方法

export default{
     // type(事件类型): 其值为setResturantName
     // payload:官方给它还取了一个高大上的名字:载荷,其实就是一个保存要传递参数的容器
    setResturanName:(state,payload)=>{
        state.resturantName=payload.resturantName;
    },
    doAjax:(state,payload)=>{
        //需求:想在当前的文件中与后台服务器做数据交互
        let _this= payload._this;
        let url = _this.axios.urls.SYSTEM_MENU_TREE;
        _this.axios.post(url, {}).then((resp) => {
            console.log(resp);
        }).catch(function(error) {
            console.log(error);
        });
        
        
    }
}

在调用doAjax中_this:this是因为Mutation.js获取不到urls,需要用它来代替

2. 在VuexPage1中调用doAjax

<button @click=“doAjax”>vuex与后台交互


doAjax(){
        this.$store.commit(“doAjax”,{
            _this:this
        })
    },

最后

你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

我特地针对初学者整理一套前端学习资料

前端路线图

最后

你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

我特地针对初学者整理一套前端学习资料

[外链图片转存中…(img-PP770oVz-1714365063638)]

vue.js的36个技巧

转载请注明出处或者链接地址:https://www.qianduange.cn//article/14226.html
标签
评论
发布的文章

JSON File 格式详解

2024-08-08 23:08:37

nvm安装node一直没有npm

2024-08-08 23:08:25

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!