vue-cli前端工程化——创建vue-cli工程 & router版本的创建 & 目录结构 & 案例初步_vue 创建指定版本的前端工程

20 阅读6分钟

vue-cli是什么

Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统。Vue CLI 致力于将 Vue 生态中的工具基础标准化。它确保了各种构建工具能够基于智能的默认配置即可平稳衔接,这样你可以专注在撰写应用上,而不必花好几天去纠结配置的问题。

在这里插入图片描述

自动构建

vue create vue-hello2

创建vue-cli项目

在这里插入图片描述

选择Vue的版本号

在这里插入图片描述

在这里插入图片描述

手动安装

在这里插入图片描述

进行选择

在这里插入图片描述

2.0版本

在这里插入图片描述

选择第一个

在这里插入图片描述

模板保存

在这里插入图片描述

创建成功

在这里插入图片描述

手动创建router版

在这里插入图片描述

在这里插入图片描述

多了一个router

在这里插入图片描述

运行测试

npm run serve

在这里插入图片描述

bug解决

如果出现Error: error digital envelope routines::unsupported,在命令行输入

在这里插入图片描述

SET NODE\_OPTIONS=--openssl-legacy-provider

Vue项目结构

在这里插入图片描述

文件作用

在这里插入图片描述

在这里插入图片描述

main.js

src/main.js是入口文件,主要作用是初始化vue实例并使用需要的插件

在main.js文件中定义了一个vue对象,其中el为实例提供挂载元素

在这里插入图片描述

运行的流程

在这里插入图片描述

package.json

{
  "name": "hello-worldx",   //项目名称
  "version": "0.1.0",   //项目包版本 「主版本号. 次版本号. 修订号」
  "private": true,  //防止我们意外地将私有库发布到 npm 服务器。
  "scripts": { //scripts 是 package.json 中内置的脚本入口
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build"
  },
  "dependencies": {   //生产环境中所必须的依赖包,将来可以通过这里的配置 下载依赖 dependencies :参与编译和打包
    "core-js": "^3.8.3",
    "register-service-worker": "^1.7.2",
    "vue": "^2.6.14"
  },
  "devDependencies": { //开发阶段需要的依赖包,不参与打包
    "@vue/cli-plugin-babel": "~5.0.0",
    "@vue/cli-plugin-pwa": "~5.0.0",
    "@vue/cli-service": "~5.0.0",
    "less": "^4.0.0",
    "less-loader": "^8.0.0",
    "vue-template-compiler": "^2.6.14"
  },
  "browserslist": [ //告知支持哪些浏览器及版本。
    "> 1%",
    "last 2 versions",
    "not dead"
  ]
}

vue.config.js

如果修改启动的服务端口,可以修改vue.config.js文件

在这里插入图片描述

module.exports ={ 
  devServer:{
    open:true,
    port:8099
  }
}

Vue项目初步

hello案例

在这里插入图片描述

在这里插入图片描述

import Vue from 'vue'
import VueRouter from 'vue-router'
import HomeView from '../views/HomeView.vue'
import Move from '../components/Move.vue'
const Login =  () => import('../components/Login.vue')
const Comdy =  () => import('../components/Comdy.vue')
const Action =  () => import('../components/Action.vue')
const GoodsIndex =  () => import('../components/GoodsIndex.vue')
const GoodsList =  () => import('../components/GoodsList.vue')



Vue.use(VueRouter)

const routes = [
  {
    path: '/',
    name: 'home',
    component: Login
  },
  {
    path:'/goodsIndex',
    component: GoodsIndex,
    children:[
      {path:'/', component: GoodsList},
      {path:'/goodsList',name: 'goodsList',component: GoodsList},
    ]
  },


  {
    path: '/about',
    name: 'about',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/\* webpackChunkName: "about" \*/ '../views/AboutView.vue')
  },
  {
    //导入组件的方法:懒加载,没有点击到对应组件路由,就不会加载到Vue内存中
    //好处:可以节省内存资源
    //应用场景:改组件页面简单,或者访问量不多的(比如注册页面)
    //系统首页不适合做懒加载
    // const Login = () => import('../components/Login.vue')
    path:'/login',component: Login
  },

  

  //嵌套路由
  {
    path:'/move',component: Move,

    //使用children实现嵌套路由
    children: [
      {path:'/',component: Action},
      {path:'/action',component: Action},
      {path:'/comdy',component: Comdy},

    ],
  }
]

const router = new VueRouter({


### 最后

全网独播-价值千万金融项目前端架构实战

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/3e3a6abc56f94e03a1e42831cd7cd0f7~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771407364&x-signature=ZOPNSzv72yAgP4G%2FB3rz%2FbF%2FaKI%3D)



从两道网易面试题-分析JavaScript底层机制

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/c0f9503cff3f43f99190112b87d62a62~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771407364&x-signature=7IXnzYYqABmxaPTytR0Y3111%2BeY%3D)



RESTful架构在Nodejs下的最佳实践



![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/288b2a32480b4b538b858773841000fe~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771407364&x-signature=loqsotcKB9cgKCfKNcy4m1xGX8k%3D)

一线互联网企业如何初始化项目-做一个自己的vue-cli

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/9b177befe1dc42c4882164db73995b9e~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771407364&x-signature=2rOWmUTY%2FZq8NGnNbhgIYS6Dstk%3D)



思维无价,看我用Nodejs实现MVC

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/571cad78cca141948c5ef64f8a2b09cd~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771407364&x-signature=e5JVQqHelBnPk%2FGT30RP9yH85dQ%3D)



代码优雅的秘诀-用观察者模式深度解耦模块

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/deac4223d4104f1087eb7f659bedd508~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771407364&x-signature=rODtIMmwCsz5tTJ%2FsLOgpp0ScRc%3D)

前端高级实战,如何封装属于自己的JS库

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/0b23cef051234eb5a06d30e510630fac~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771407364&x-signature=Jgz8lZ3RKazJQiWrdsk%2Ff%2FJox1A%3D)

VUE组件库级组件封装-高复用弹窗组件

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/bd462e70c15f4afc8773430440738ecd~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771407364&x-signature=jm03o67m7NFnRrn%2BBqCrM7PgHNc%3D)

**开源分享:https://docs.qq.com/doc/DSmRnRGxvUkxTREhO**