当前位置:   article > 正文

vue+element框架搭建_搭建vue+element

搭建vue+element

Vue 提供了一个官方的 CLI,为单页面应用 (SPA) 快速搭建繁杂的脚手架。它为现代前端工作流提供了 batteries-included 的构建设置。只需要几分钟的时间就可以运行起来并带有热重载、保存时 lint 校验,以及生产环境可用的构建版本。首先来看文档地址https://cli.vuejs.org/zh/guide/

1.cli安装 查看版本(是否安装成功):vue -V(大写的V)

  1. npm install -g @vue/cli
  2. # OR
  3. yarn global add @vue/cli

2.创建一个项目

  1. vue create my-project
  2. # OR
  3. vue ui

3.选择

选择default 选默认的包含了基本的 Babel + ESLint 设置

选择manually select feature 为手动选择特性,空格为选择

css批处理器选择的stylus找了一个文档 https://www.zhangxinxu.com/jq/stylus/

4.创建完成,此时可以启动

5.安装elemet,文档地址https://element.eleme.cn/#/zh-CN/component/installation

npm i element-ui -S

6.引入整个 Element在 main.js 中写入以下内容:

  1. import ElementUI from 'element-ui';
  2. import 'element-ui/lib/theme-chalk/index.css';
  3. Vue.use(ElementUI);

7.安装axios,文档地址 http://www.axios-js.com/

npm install axios

8.根据自己的习惯优化框架

(1)把路由放在文件夹内,便于管理

在src内新建文件夹router,里面新建index.js,把原来的router.js的内容拷贝进去。

对index.js进行改造:查看里面的路径是否正确,把router进行变量定义,在router执行前进行其他操作。改造后的代码如下,其中会引入一些其他配置会在下面进行说明

  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. import { getCurUser } from '@/utils/local'; //本地存储进行封装,便于修改
  4. // Home view 中增加了Home.vue文件
  5. import Home from '@/views/Home.vue'
  6. // about view 中增加了.vue文件
  7. import About from '@/views/About.vue'
  8. // Login view 中增加了 .vue文件
  9. import Login from '@/views/Login.vue'
  10. // ErrorPage view 中增加了 .vue文件
  11. import ErrorPage from '@/views/components/common/ErrorPage.vue'
  12. Vue.use(Router)
  13. const router = new Router({
  14. routes: [
  15. {
  16. path: '/',
  17. name: 'home',
  18. component: Home
  19. },
  20. {
  21. path: '/about',
  22. name: 'about',
  23. component: About
  24. },
  25. {
  26. path: '/login',
  27. name: 'login',
  28. component: Login,
  29. props: true
  30. },
  31. {
  32. path: '*',
  33. name: 'nonexisting',
  34. component: ErrorPage
  35. }
  36. ]
  37. })
  38. router.beforeEach((to, from, next) => {
  39. if (to.meta.requireLogin) {
  40. //判断是否登录
  41. if (getCurUser()) {
  42. next()
  43. } else {
  44. next({
  45. path: "/user/login",
  46. query: {
  47. redirect: to.fullPath
  48. }
  49. })
  50. }
  51. } else {
  52. next()
  53. }
  54. });
  55. export default router

(2)本地存储进行封装,便于修改:新建utils文件夹,新建local.js

  1. function setLoginToLocal(val) {
  2. return localStorage.setItem('imesp-token', val);
  3. }
  4. function getLoginToLocal() {
  5. return localStorage.getItem('imesp-token');
  6. }
  7. function getCurUser() {
  8. return localStorage.getItem('curuser');
  9. }
  10. function setCurUser(val) {
  11. return localStorage.setItem('curuser', val);
  12. }
  13. export {
  14. getLoginToLocal,
  15. setLoginToLocal,
  16. getCurUser,
  17. setCurUser
  18. }

(3)axios进行封装,便于统一处理:在utils新建http.js

  1. import axios from 'axios';
  2. import router from '@/router';
  3. import { Message} from 'element-ui';
  4. import { getLoginToLocal, setLoginToLocal } from '@/utils/local';
  5. // axios 使用说明:https://www.kancloud.cn/yunye/axios/234845
  6. // create an axios instance
  7. const service = axios.create({
  8. baseURL: '',
  9. timeout: 20000 // request timeout
  10. })
  11. // token
  12. service.defaults.headers['Authorization'] = getLoginToLocal();
  13. service.interceptors.response.use(
  14. response => {
  15. return response.data;
  16. },
  17. error => {
  18. const res = error.response.data;
  19. if (res.status == 401) {
  20. if(getLoginToLocal()) {
  21. setLoginToLocal('');
  22. router.push({
  23. name: "user-login"
  24. })
  25. }
  26. } else if (res.status == 402) {
  27. router.push({
  28. name: "developer-register"
  29. })
  30. } else {
  31. Message({
  32. message: res.message,
  33. type: 'error',
  34. center: true,
  35. duration: 5 * 1000
  36. });
  37. }
  38. return Promise.reject(error)
  39. }
  40. );
  41. export default service;

目录结构:

 

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

闽ICP备14008679号