前后端分离开发VUE部分

一、创建VUe项目(PS:其实使用VUE UI方式更为简单直接):

1、基于脚手架,使用管理员命令创建vue项目:

如:

2、引入element组件:

使用管理员权限为当前项目安装:

然后再main.js项目中引入:

import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI);

3、安装VUE router:

这一步在脚手架创建vue项目时,可自动安装,也可以手动安装。下面是手动安装方式。注意版本问题。

同样需要引入vue-router

二、路由router的使用:

1、基本流程:

构建目录,在组件目录中,创建组件文件,并且将其export(暴露)。

然后在router文件夹中创建所需的路由文件xx.js,刚刚创建的组件和所需资源引入,并且定义路由。

在主文件main.js中引入刚刚的路由文件router。

然后就可以在页面文件xx.vue中使用组件和路由了。router-link负责跳转链接,而router-view负责控制组件的显示。

2、路由传参:

先在路由文件xx.js中将路径通过“:xx”传递

然后就可以在xx.vue文件中,进行路由拼接和跳转

最后在组件文件xx.vue用这样的方式获取到参数。

3、params传参:

比如对于这样的路由,我在传参想不行进行"/main/:id"这样的路由拼接了,可以将“/main”改成

{name: 'main', params: {name: this.form.name}}

其中前半部分是路由,后半部分利用params进行传参。可以通过这样的语句获取传递值。

$route.params.name

4、登录

4.1、直接sessionStorages实现简单登录判断

在登录文件xx.vue中,将登录表单成功提交时,设置'islogin'(自定义)。

sessionStorage.setItem('islogin','true');

然后再main.js文件中使用router.beforeEach((to, from, next)=>{ ......})函数,在路由跳转前进行登录状态判断和相关处理。

router.beforeEach((to, from, next) => {
  let islogin = sessionStorage.getItem('islogin');
//注销
  if (to.path == '/logout') {
    //清空
    sessionStorage.clear();
    //跳转到登录页面
    next({ path: '/login' });
  } else if (to.path == '/login') {
 //判断是否为空,不为空则跳转至首页
    if (islogin != null) {
      next({ path: '/main' });
    }
  } else if (islogin == null) {
      next({ path: '/login' });
    }
  next();
});

4.2 VUEX实现登录保持

将用户看成一个对象,创建模块文件

在文件里编写这些

const user={

    state : sessionStorage.getItem('state') ? JSON.parse(sessionStorage.getItem('state')):{
        user: {
            name: ''
        }
    },

    getters : {
        getUser(state) {
            return state.user;
        }
    },

    mutations : {
        updateUser(state, user) {
            state.user = user;
        }
    },

    actions : {
        asyncUpdateUser(context, user) {
            context.commit('updateUser', user);
            // 更新后保存到 sessionStorage
            sessionStorage.setItem('state', JSON.stringify(context.state));
        }
    }

}

export default user;

再创建文件xx.js,引入VueX和刚刚的模块。

import Vue from 'vue';
import Vuex from 'vuex';
import user from "@/store/modules/user";
Vue.use(Vuex);

export default new Vuex.Store({
    modules:{
        user
    }
});

在登录文件xx.vue中

if (valid) {
          sessionStorage.setItem('islogin','true');

//将已通过验证的表单数据保存到sessionStorage中
          this.$store.dispatch("asyncUpdateUser",{name:this.form.name})
          this.$router.push({name: 'main', params: {name: this.form.name}});

在主页文件xx.vue中用这样的方式去获取到用户对象的信息

 <span>{{$store.getters.getUser.name}}</span>

三、vite创建项目于更好

npm create vue@latest

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值