vue 一个页面多个router-view如何配置子路由_vue-cli3 项目从搭建优化到docker部署

本文详细介绍了如何使用Vue CLI3创建并优化项目,包括全局组件自动注册、路由自动引入、通过Node.js生成组件和页面、axios封装、Mixins封装、项目优化如gzip压缩和CDN引用,以及Docker部署的步骤,如docker-compose配置和nginx代理。文章还提及了自动化部署和使用Jenkins的可能性。
摘要由CSDN通过智能技术生成

28815c4a635465b8252bf85fdb93a924.png
项目地址 vue-cli3-project 欢迎 star
原文地址 https://www. ccode.live/lentoo/list/ 9?from=art

1. 创建一个vue项目

相信大部分人都已经知道怎么创建项目的,可以跳过这一节,看下一节。

1.1 安装@vue/cli

# 全局安装 vue-cli脚手架
npm install -g @vue/cli

等待安装完成后开始下一步

1.2 初始化项目

vue create vue-cli3-project
  1. 选择一个预设

e84b5a2c9a677c8d6d8fe0176b5c20a4.png

可以选择默认预设,默认预设包含了babel,eslint

我们选择更多功能 Manually select features

回车后来到选择插件

  1. 插件选择

这边选择了(Babel、Router、Vuex、Css预处理器、Linter / Formatter 格式检查、Unit测试框架)

ea7db1c186fb94d6bed59c9cc8e6c92a.png
  1. 路由模式选择

是否使用 history模式的路由 (Yes)

c3ee70f6aa29d5c56c26397cabef7c3c.png
  1. 选择一个css预处理器 (Sass/SCSS)

24fdb814046d8211ee2ff0f43adcac66.png
  1. 选择一个eslint配置

这边选择 ESLint + Standard config,个人比较喜欢这个代码规范

1cce99991df5bcaf0927d437f8fb4723.png
  1. 选择什么时候进行 eslint 校验

选择(Lint on save)保存是检查

如果你正在使用的vscode编辑器的话,可以配置eslint插件进行代码自动格式化

70872131c2897f733a4174e70df4d0c8.png

7. 选择测试框架 (Mocha + Chai)

3010effcc10fa74c1a5cfa92168874f1.png

8. 选择将这些配置文件写入到什么地方 (In dedicated config files)

8e491f4ead54b26c843ae3bc0bc212e9.png
  1. 是否保存这份预设配置?(y)

选是的话,下次创建一个vue项目,可以直接使用这个预设文件,而无需再进行配置。

b69adbb67d9819bc87d9be2bb0c9cb86.png

等待依赖完成

b665812cd129ad29e13f15c2dfd8d5e8.png

2. 全局组件自动注册

components目录下创建一个global目录,里面放置一些需要全局注册的组件。

index.js作用只要是引入main.vue,导出组件对象

ea1d2a60cc4b1c1a7bc76db7a128a8d3.png

components中创建一个index.js,用来扫描全局对象并自动注册。

// components/index.js
import Vue from 'vue'

// 自动加载 global 目录下的 .js 结尾的文件
const componentsContext = require.context('./global', true, /.js$/)

componentsContext.keys().forEach(component => {
    
  const componentConfig = componentsContext(component)
  /**
  * 兼容 import export 和 require module.export 两种规范
  */
  const ctrl = componentConfig.default || componentConfig
  Vue.component(ctrl.name, ctrl)
})

最后在入口文件main.js中导入这个index.js中就可以了

3.路由自动引入

Vue项目中使用路由,相信想熟的人已经很熟悉怎么使用了,要新增一个页面的话,需要到路由配置中配置该页面的信息。

如果页面越来越多的话,那么如何让我们的路由更简洁呢?

3.1 拆分路由

根据不同的业务模块进行拆分路由

6eeeb9481d24c15490c8545795e6da17.png

在每个子模块中导出一个路由配置数组

ccb01f905b8b6b7938ed4b1e5dd728f3.png

在根 index.js中导入所有子模块

2792d3f6e07052db4feb7e6dc2d321c9.png

3.2 自动扫描子模块路由并导入

当我们的业务越来越庞大,每次新增业务模块的时候,我们都要在路由下面新增一个子路由模块,然后在index.js中导入。

那么如何简化这种操作呢?

通过上面的自动扫描全局组件注册,我们也可以实现自动扫描子模块路由并导入

929010da4d6fadcf8b68dbd04b8929d9.png

4. 通过node来生成组件

作为前端开发者,放着 node这么好用的东西如果不能运用起来,岂不是很浪费?

f89f6a229087c42719a99f6cb7cfa6be.png

虽然我们通过上面已经实现了组件的自动注册,不过每次新建组件的时候,都要创建一个目录,然后新增一个.vue文件,然后写templatescriptstyle这些东西,然后新建一个index.js、导出vue组件、虽然有插件能实现自动补全,但还是很麻烦有木有。

那么我们能不能通过node来帮助我们干这些事情呢?只要告诉node帮我生成的组件名称就行了。其它的事情让node来干

905328218e30c5fee3a9808ab6155ae0.png

4.1 通过node来生成组件

  • 安装一下chalk,这个插件能让我们的控制台输出语句有各种颜色区分
npm install chalk --save-dev

在根目录中创建一个 scripts 文件夹,

新增一个generateComponent.js文件,放置生成组件的代码、

新增一个template.js文件,放置组件模板的代码 * template.js

// template.js
module.exports = {
    
  vueTemplate: compoenntName => {
    
    return `<template>
  <div class="${
    compoenntName}">
    ${
    compoenntName}组件
  </div>
</template>
<script>
export default {
  name: '${
    compoenntName}'
}
</script>
<style lang="scss" scoped>
.${
    compoenntName} {

}
</style>
`
  },
  entryTemplate: `import Main from './main.vue'
export default Main`
}
  • generateComponent
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值