项目作者: Jomokor

项目描述 :
el-data-table的demo
高级语言: Vue
项目地址: git://github.com/Jomokor/DEEPEXI-el-data-table.git
创建时间: 2019-04-16T12:15:04Z
项目社区:https://github.com/Jomokor/DEEPEXI-el-data-table

开源协议:MIT License

下载


nuxt2 + element dashboard

Build StatusPRs Welcome

Table of Contents

Feature

Nuxt.js的基础上,集成以下技术栈:

⬆ Back to Top

快速开始

  1. # 安装依赖
  2. yarn
  3. # 使用mock接口进行开发
  4. yarn mock
  5. # 使用mock接口进行开发,且不会有登录拦截
  6. yarn mock:nologin
  7. # 使用后端接口进行开发
  8. yarn dev
  9. # 使用webpack进行生产构建
  10. yarn build
  11. # 生成静态站点
  12. yarn generate

⬆ Back to Top

工程结构

  1. ├── README.md
  2. ├── nuxt.config.js 框架配置文件
  3. ├── package.json
  4. ├── src
  5. ├── assets 资源,包括样式文件与图片
  6. └── global.less
  7. ├── components 可复用的组件
  8. ├── const 常量文件
  9. ├── api.js 定义api路径
  10. └── path.js 定义页面跳转路径
  11. ├── layouts 可复用的页面布局
  12. ├── default.vue
  13. └── login.vue
  14. ├── middleware 自定义函数,会在每个页面渲染前执行
  15. └── meta.js
  16. ├── mixins 可复用的“织入”页面的代码片断
  17. └── auth.js
  18. ├── pages 应用视图 & 路由名称,每个文件都对应一个路由视图,开发者框无需手动维护路由文件
  19. ├── index.vue
  20. └── login.vue
  21. ├── plugins 应用插件,在Vue.js 初始化前运行,可在这里引入第三方类库
  22. ├── axios.js
  23. └── element.js
  24. └── store Vuex状态管理文件
  25. └── index.js
  26. ├── static 静态资源
  27. └── favicon.ico
  28. └── yarn.lock

⬆ Back to Top

开发

新建页面

Nuxt.js 会依据 pages 目录中的所有 *.vue 文件生成应用的路由配置

pages目录下新建一个名为 hello.vue 的页面

  1. <template>
  2. <h1>Hello world!</h1>
  3. </template>

即可在 http://localhost:3000/hello 访问到新建的页面

⬆ Back to Top

调用接口

使用this.$axios 调用接口:

  • 可以在 *.vue 文件中的生命周期钩子函数中调用
  • 可以在 methods 里调用
  • 可以在 store/*.jsactions 里调用
  1. // vue文件
  2. export default {
  3. mounted() {
  4. this.$axios.$get(url)
  5. },
  6. methods: {
  7. fetchData() {
  8. this.$axios.$get(url)
  9. }
  10. }
  11. }
  1. // store/index.js
  2. export const actions = {
  3. async fetchData({commit}, {params}) {
  4. let resp = await this.$axios.$get(url, {params})
  5. commit('update', resp)
  6. }
  7. }

⬆ Back to Top

CRUD

注意方法前有$

  1. // GET 请求
  2. this.$axios.$get('/users', {params: {key: value})
  3. .then(resp => {
  4. })
  5. .catch(e => {})
  1. // POST 请求
  2. this.$axios.$post('/user', {
  3. firstName: 'Fred',
  4. lastName: 'Flintstone'
  5. })
  6. .then(resp => {
  7. })
  8. .catch(e => {})
  1. // PUT 请求
  2. this.$axios.$put('/user/1', {
  3. firstName: 'Fred',
  4. lastName: 'Flintstone'
  5. })
  6. .then(resp => {
  7. })
  8. .catch(e => {})
  1. // DELETE 请求
  2. this.$axios.$delete('/user/1')
  3. .then(resp => {
  4. })
  5. .catch(e => {})
  1. // 或
  2. this.$axios({
  3. method: 'delete',
  4. url: '/users',
  5. data: {
  6. rows: [1,2],
  7. }
  8. })

⬆ Back to Top

设置代理

开发时,api使用的都是相对路径,通过代理来解决跨域问题。

nuxt.config.js 中找到 config 变量,修改 mock 设置:

  1. env: {
  2. mock: {
  3. '/api': 'http://mock.api.server',
  4. },
  5. dev: {
  6. '/api': 'http://real.api.server',
  7. }
  8. }

则对于所有以 /api 开头的请求:

  1. yarn mock 模式下,都会变成 http://mock.api.server/api

  2. yarn dev 模式下,都会变成 http://real.api.server/api

注意,每次修改代理设置,都需要重新启动应用才能生效

⬆ Back to Top

环境变量

使用.env设置环境变量, 即在项目根目录新建一个.env文件, 填写环境变量即可。

注意,该文件不能提交至版本控制系统中。

.env文件示例:

  1. # 左边是变量名(一般大写,下划线分割单词),右边是变量值
  2. # 注意=号两边不能有空格
  3. TESTING_VAR=just-fot-testing
  4. ANOTHER_VAR=another

可以在项目的vue文件或js文件中读取

  1. mounted() {
  2. console.log(process.env.TESTING_VAR) // 输出 just-fot-testing
  3. }

自带的环境变量说明

环境变量名 说明 是否必须 默认值 示例
PUBLIC_PATH 对应webpack的publicPath,用于指定静态文件访问路径,一定要/结尾 http://cdn.deepexi.com/
API_SERVER axios的baseURL,可不传。不传时,使用相对路径发送请求 https://www.easy-mock.com
NO_LOGIN 是否登陆拦截,传1则不会有登录拦截 1
COOKIE_PATH 用于设置cookie的path,如果多个项目需要共享cookie,则应该保证项目在共同的目录下,且设置COOKIE_PATH为它们的共同目录地址 / /xpaas

⬆ Back to Top

构建

构建默认生成的是hash路由模式的spa, 会读取根目录下的.env文件获取环境变量

命令如下:

  1. yarn build

License

MIT

⬆ Back to Top