vue-element-admin技术栈

基础概念

vue-cli

vue-cli 俗称vue脚手架,是一个vue开发的环境,将你写的vue文件、sass文件等静态资源进行编译压缩,生成浏览器能访问的html页面, vue-cli里面运用的是vue单文件组件的写法。

element

element是基于vue语法的UI库,组件丰富,交互体验好,适用于做后台应用

vue-element-admin

vue-element-admin 是基于vue-cli和element做成的一个后台应用的模板,里面封装了很多实用的方法和UI(图表,上传组件,接口请求的封装等等),让你能把更多的精力放到功能流程的完成上。

应用基础

es6 语法

vue是基于es6的,所以如果对es6不熟悉,应该先看一下es6的文档,至少知道下面几个写法

面向对象
写一个module.js

    const obj = {test:1}
    export default obj

引用

import {test} from module.js

上面这句等于下面这两句

import module from module.js
let test  =  module.test

对象定义时

data() {}   =   data: function(){}
components: { cateAdd } = components: { cateAdd:cateAdd}

箭头回调

test().then(res => { 
    console.log('这里是成功的回调')
}).catch(
    error => { console.log('这里是失败的回调')
})

阮一峰es6教程

vue语法和单文件组件

对于vue,需要先了解三块,基本语法,单文件组件,生命周期函数

  • 基本语法
    看文档,vue的思路和写法看一遍文档基本上就可以了

  • 单文件组件
    一个.vue的文件被输出为一个对象

    import testCate from 'test.vue'
    // 使用的时候  
    <test-cate></test-cate>
    

一个vue文件从生成-渲染-更新-直到销毁,有对应的生命周期函数

使用element组件

element组件本质上就是一个一个的单文件vue组件,引入后,即可使用,然后定义了各种参数,属性和方法 用法比较简单element文档

了解vue-element-admin基本结构

在vue-element-admin中,大多数代码都是写在src中, api中写接口请求,view中写vue文件,store中写数据管理,其他的用法看文档

实际应用

vue-router

vue-router是定义前端的路由和对应显示页面的管理工具,vue-element-admin集成了vue-router, 并且写好了路由文件对应左侧列表的渲染方法,所以我们只需要在/src/router/index.js中定义好路由就行了,所以写这个项目对vue-router使用水平的要求不高,如果想了解的更透彻一点,可以看文档

vue-axios

vue-axios是接口请求的工具,同样的vue-element-admin也封装了,写成了request.js

  import request from '@/utils/request'
  request({
    url: '/category',
    method: 'post',
    params: param
  })  

这里有个坑,接口给过来的报错信息,都会被axios默认处理,舍弃接口抛出的信息,这就需要在封装的地方进行修改,但是error对象打印不出来,看不到里面的信息,通过找文档看到,error确实是一个对象,包含了所有信息,只是直接打印打不出来,error.response.data.message即可拿到接口的错误信息
文档

状态存储 vuex

状态存储用到的就比较多了,什么叫状态存储呢,其实是一个数据层,很多时候,我们需要子组件中触发父组件的数据改变,但是vue对于这一点的支持很差,所以,有了这个数据处理的工具,我们无论在哪里,直接修改这个数据仓库中的值即可,而绑定了这个数据的地方,就会随之全部改变。所以这个组件要看文档详细的了解,不用要求看一遍什么都懂,大概了解一下,就可以先看项目中的使用方法,main.js /src/store /src/views/cate.vue 从引入到使用看一遍就可以了。

遇到的语法总结

  • 项目中引用了eslint代码检测工具,所以加入你的写法不对 会报红警告,哪怕是多一个或少一个空格
  • js全部不要加分号
  • 定义变量时 用let代码提示有时候会报错,用const就好了,这两者的区别我还没有了解清楚
  • @ 指的是src目录 比如 '@/api' 指的就是 '/src/api'
  • store的使用, 可以在 vue组件中 this.$store.state. 也可以引入 @/src/index.js store.state.
  • 列表获取的全局数据,不能是直接定义数据 而是要定义成计算属性,比如,定义了一个data:test vue能监测到data的改变,从而修改视图和对应的数据,但是,如果是test变了,这样定义是监测不到的
  • 一个vue文件的顺序应该是 template script style 这样方便维护

开发配置+打包发布

在/config中,有三个env文件,

  • dev.env.js是本地开发环境的配置
  • prod.env.js是是线上生产环境的配置
  • sit.env.js 是线上测试环境的配置

开发过程中 npm run dev 程序会默认读取dev.env.js中的配置进行编译
打包时候 npm run build:prod 会读取prod.env.js中的配置进行编译,并在/dist中生成打包文件,生成的文件很简单,静态资源文件+ index.html 中是一个css和四个js文件,导致特别慢,需要12.5秒才能打开,所以需要把这五个文件进行cdn加速,加速之后是300ms-800ms,但是等项目大了之后,还是会慢,这个是最大的问题。

推荐阅读更多精彩内容

  • 男孩大概十六七岁的样子,据说是初中毕业之后没考上高中而做了学徒工。 那天早上,天气异常寒冷,你呼出一口气,瞬间会变...
    LOVE姑娘阅读 122评论 0 2
  • 很庆幸每天我都很忙碌,忙碌的我根本没时间矫情,可是总会有闲下来的时候…… 我这个人啊真的很奇怪,对于自己喜欢的人的...
    曾慌张曾幻想阅读 196评论 0 0
  • 中国有太多表里不一的人,当面一套,背后一套;逢人说人话,见鬼学打卦;人前满脸堆笑,暗里狠捅一刀! 林子大了还...
    唯一还是我阅读 2,189评论 0 0
  • 大家好,今天我们分享的电影是周星驰的《九品芝麻官》,该电影是王晶导演,周星驰、吴孟达、徐锦江,张敏联合主演的喜剧电...
    玖甲阅读 292评论 0 0