配置一个vue3.0项目的完整步骤(5)

先在我们终于讲到最后一个知识点vuex了。为什么要用vuex,在本项目里,使用vuex是为了保持网站的登录状态。比如我们index页面要求用户必须登录才能够访问,这里就要用vuex了。vuex实例化后叫store。

地址:vuex

安装

D:\test\book>yarn add vuex

在store文件夹下,新建index.js文件

代码如下:

import Vue from 'vue' import Vuex from 'vuex' // 引入js-cookie import Cookies from 'js-cookie' Vue.use(Vuex) const store = new Vuex.Store({ state: { name: '' }, mutations: { loginIn(state, name) { state.name = name // 设置过期时间为1天 Cookies.set('name', name, { expires: 1 }) }, loginOut(state) { state.name = '' Cookies.remove('name') } } }) export default store

我们定义了一个loginIn方法,调用这个方法,我们就可以把用户的用户名存在store中,同时也存在cookie里,cookie的有效期是1天。

配置

修改main.js,把store引入进去main.js中,然后在 new Vue 函数中配置

import store from './store/index.js' …… new Vue({ router, store, render: h => h(App), }).$mount('#app')

好啦,这时候我们就可以愉快的使用store了。

修改 Login.vue 的 onSubmit 方法,用户登录成功后,就把用户信息存在store中。

if (res.data.status === 1) { // 将用户信息存储在vuex中 this.$store.commit('loginIn', this.form.name) // 如果登录成功则跳转我index页面 this.$router.push('/index') } else { …… }

修改 Index.vue 页面,我们就可以在这个页面获取登录用户的用户名了。

Index.vue 代码如下:

<template> <div>这里是Index 页面,此时登录的用户是{{userName}}</div> </template> <style> </style> <script> export default { name: 'Index', data() { return { } }, computed: { userName() { return this.$store.state.name } }, } </script>

自此,一个我们常用vue项目基本上配置完成了。当然不同的项目,还有不同的组件需要安装,到时候你们再根据情况确定吧。

最后再讲一个关于路由拦截的问题。

15.路由拦截

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/9f56a955958040445bbe667812579143.html