Vue脚手架(vue-cli)搭建和目录结构详解

2023-10-27

一、环境搭建

  1、安装node、npm、webpack,不多说

  2、安装vue-cli脚手架构建工具,打开命令行工具输入:npm install vue-cli -g,安装完成之后输入 vue -V(注意这里是大写的“V”),如果出现相应的版本号,则说明安装成功。

二、用vue-cli来构建项目

  1、在硬盘上找一个文件夹放工程用的。这里有两种方式指定到相关目录:(1)cd 目录路径 (2)如果以安装git的,在相关目录右键选择Git Bash Here

  2、安装vue脚手架输入:vue init webpack exprice ,注意这里的“exprice” 是项目的名称,可以说是随便起名,但是需要注意的是“不能用中文,且不能用大写字母”。

复制代码

$ vue init webpack exprice --------------------- 这个是那个安装vue脚手架的命令
This will install Vue 2.x version of the template. ---------------------这里说明将要创建一个vue 2.x版本的项目
For Vue 1.x use: vue init webpack#1.0 exprice
? Project name (exprice) ---------------------项目名称
? Project name exprice
? Project description (A Vue.js project) ---------------------项目描述
? Project description A Vue.js project
? Author Datura --------------------- 项目创建者
? Author Datura
? Vue build (Use arrow keys)
? Vue build standalone
? Install vue-router? (Y/n) --------------------- 是否安装Vue路由,也就是以后是spa(但页面应用需要的模块)
? Install vue-router? Yes
? Use ESLint to lint your code? (Y/n) n ---------------------是否启用eslint检测规则,这里个人建议选no
? Use ESLint to lint your code? No
? Setup unit tests with Karma + Mocha? (Y/n)
? Setup unit tests with Karma + Mocha? Yes
? Setup e2e tests with Nightwatch? (Y/n)
? Setup e2e tests with Nightwatch? Yes
vue-cli · Generated "exprice".
To get started: --------------------- 这里说明如何启动这个服务
cd exprice
npm run dev

复制代码

  3、cd 命令进入创建的工程目录,首先cd exprice(这里是自己建工程的名字),然后npm run dev,启动服务器。服务启动成功后浏览器会默认打开一个“欢迎页面”,如图。

  注意:这里是默认服务启动的是本地的8080端口,所以请确保你的8080端口不被别的程序所占用。

三、目录介绍

  创建完成的“exprice”目录如下:

  简单说明下各个目录都是干嘛的:

  总体框架:一个vue-cli的项目结构如下,其中src文件夹是需要掌握的,所以本文也重点讲解其中的文件,至于其他相关文件,了解一下即可。

四、文件结构细分

  1、build——[webpack配置]

  build文件主要是webpack的配置,主要启动文件是dev-server.js,当我们输入npm run dev首先启动的就是dev-server.js,它会去检查node及npm版本,加载配置文件,启动服务。

  2、config——[vue项目配置]

  config文件主要是项目相关配置,我们常用的就是当端口冲突时配置监听端口,打包输出路径及命名等

 

  3、node_modules——[依赖包]

  node_modules里面是项目依赖包,其中包括很多基础依赖,自己也可以根据需要安装其他依赖。

  安装方法为打开cmd,进入项目目录,输入npm install [依赖包名称],回车。

  在两种情况下我们会自己去安装依赖:

  (1)项目运行缺少该依赖包:例如项目加载外部css会用到的css-loader,路由跳转vue-loader等(安装方法示例:npm install css-loader)

  (2)安装插件:如vux(基于WEUI的移动端组件库),vue-swiper(轮播插件)

  注:有时会安装指定依赖版本,需在依赖包名称后加上版本号信息,如安装11.1.4版本的vue-loader,输入npm install vue-loader@11.1.4

  4、src——[项目核心文件]

  项目核心文件前面已经进行了简单的说明,接下来重点讲解main.js,App.vue及router的index.js

 五、脚手架代码详解

   我们看下创建后的项目目录里的主要文件:

  1、index.html——[主页]

  这个没什么好说的,就是一个简单的html页面,这里id='app',是为后面的设置vue作用域有关的。

  index.html如其他html一样,但一般只定义一个空的根节点,在main.js里面定义的实例将挂载在根节点下,内容都通过vue组件来填充

  2、文件:Hello.vue

  说明:在*.vue文件,template标签里写html代码,且template直接子级只能有一个标签。style标签里写样式,script里面写js代码。

  3、文件:App.vue——[根组件]

复制代码

<template>
  <div id="app">
    <img src="./assets/logo.png">
    <router-view/> //这里是用来展示路由页面内容的,如果想用跳转就用<router-link to='xxx'></router-link>
  </div>
</template>

<script>
export default {
  name: 'App'
}
</script>

<style>
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

复制代码

  一个vue页面通常由三部分组成:模板(template)、js(script)、样式(style):

  【template】

  其中模板只能包含一个父节点,也就是说顶层的div只能有一个(例如下图,父节点为#app的div,其没有兄弟节点)

  <router-view></router-view>是子路由视图,后面的路由页面都显示在此处。打一个比喻吧,<router-view>类似于一个插槽,跳转某个路由时,该路由下的页面就插在这个插槽中渲染显示

  【script】

  vue通常用es6来写,用export default导出,其下面可以包含数据data,生命周期(mounted等),方法(methods)等,具体语法请看vue.js文档,在后面我也会通过例子来说明。

  【style】

  样式通过style标签<style></style>包裹,默认是影响全局的,如需定义作用域只在该组件下起作用,需在标签上加scoped,<style scoped></style>

  如要引入外部css文件,首先需给项目安装css-loader依赖包,打开cmd,进入项目目录,输入npm install css-loader,回车。安装完成后,就可以在style标签下import所需的css文件,例如:

<style>
    import './assets/css/public.css'
</style>

  这样,我们就可以把style下的样式封装起来,写到css文件夹,再引入到页面使用,整个vue页面也看上去更简洁。

  4、文件:main.js——[入口文件]

  这个js文件是主页面配置的主入口。主要是利用ES6的模块化引入模板

  main.js主要是引入vue框架,根组件及路由设置,并且定义vue实例,下面代码中的components:{App}就是引入的根组件App.vue

  后期还可以引入插件,当然首先得安装插件。

复制代码

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue' // 引入vue文件
import App from './App'// 引入同目录下的App.vue模块
import router from './router'// 引入vue的路由

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',//定义作用范围就是index.html里的id为app的范围内
  router,//引入路由
  components: { App },//注册引入的组件App.vue
  template: '<App/>'//给Vue实例初始一个App组件作为template 相当于默认组件
})

复制代码

  5、router——[路由配置]

  router文件夹下,有一个index.js,即为路由配置文件

复制代码

import Vue from 'vue'  //引用vue文件
import Router from 'vue-router'  //引用vue路由模块,并赋值给变量Router
import HelloWorld from '@/components/HelloWorld'  //英文HelloWorld.vue模版,并赋值给变量HelloWorld,这里是“@”相当于“../”

Vue.use(Router)  //使用路由

export default new Router({
  routes: [  //进行路由配置,规定“/”引入到HelloWorld组件
    {
      path: '/',
      name: 'HelloWorld',  //这个name暂时不知道用啥用,根据官方文档说的是方便排错的
      component: HelloWorld  //注册HelloWorld组件
    }
  ]
})

复制代码

  这里定义了路径为'/'的路由,该路由对应的页面是HelloWorld组件,所以当我们在浏览器url访问http://localhost:8080/#/时就渲染的Hello组件

  类似的,我们可以设置多个路由,‘/index’,'/list'之类的,当然首先得引入该组件,再为该组件设置路由。

  说明:如果需要增加组件那就在components文件下定义xx.vue文件并编写代码即可;如果需要配置路由就要在index.js进行路由“路径”配置;还需要点击跳转就要用到<router-link></router-link>标签了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue脚手架(vue-cli)搭建和目录结构详解 的相关文章

  • java开发团队认知_一个优秀的研发团队应该具备什么特征

    1 计划执行 计划安排得当 不要老加班 不要老是现实和计划不匹配 不要做到哪儿计划就推后到哪儿 2 研发成果 成功产出几个重影响力级别的 完整成块的 有成就感自豪感的产品或项目 3 团队氛围 这个团队每个人都相处的很融洽 4 团队协作 每个
  • Pytorch 的 LSTM 模型的简单示例

    1 代码 完整的源代码 import torch from torch import nn 定义一个LSTM模型 class LSTM nn Module def init self input size hidden size num l

随机推荐

  • C. Doremy‘s IQ(二分/贪心)

    题目 题意 给定n个任务和艾米的智商q 艾米要按顺序处理这n个任务 每个任务有难度值a i 对于每个任务 艾米可以选择处理 也可以选择不处理 如果艾米当前的智商q大于等于任务a i 则艾米可以直接处理该任务 智商不受任何影响 如果艾米当前的
  • SpringCloud——微服务

    微服务技术栈 在之前的开发过程中 我们将所有的服务都部署在一台服务器中 当我们的服务开始越来越多 业务越来越复杂 当一台服务器不能承担我们的业务的时候 就需要将不同的业务分开部署在不同的服务器上 这每一个单独分离的服务 就是微服务 这些搭载
  • 数据结构 常见的八大数据结构汇总 为什么要学习数据结构?解读数据结构!进阶必看!

    文章目录 什么是数据结构 概念解释 为什么要学习数据结构 常见的数据结构 0 数组 1 链表 2 栈 3 队列 4 树 5 散列表 又叫哈希表 6 堆 7 图 思维导图 横向 纵向 什么是数据结构 数据结构 Data Structure 是
  • 使用Arduino开发ESP32:串口(Serial port) HardwareSerial库使用说明

    HardwareSerial库使用 使用演示 上图中通过HardwareSerial库实现了对串口1的使用 具体说明见下文 详细说明 使用HardwareSerial库需要先声明一个对象 例如上文图中的HardwareSerial mySe
  • MySQL基本操作(三)

    MySQL基本操作 三 看过MySQL基本操作 二 的应该已经体会到mysql数据库下user表的妙用了 我相信你也已经做过一些尝试了 比如自建用户名无需密码登录 自建任意主机登录等等 这样的尝试会增加你对mysql的兴趣 Ok 你第一次登
  • VC得到当前目录与得到应用程序目录的一个应用

    得到当前目录的函数 GetCurrentDirectory 得到应用程序目录的函数是 GetModuleFileName 用法都很简单 不知道就看MSDN吧 我先用这2个函数分别写一个实现同一个功能的函数 以下是代码片段 函 数 名 Rea
  • Candy算法--理解

    Canny边缘检测算子的目标是找到一个最优的边缘检测算法 最优边缘检测的含义是 好的检测 算法能够尽可能多地标识出图像中的实际边缘 好的定位 标识出的边缘要与实际图像中的实际边缘尽可能接近 边缘过粗 难以精确定位 最小响应 图像中的边缘只能
  • kafka中partition数量与消费者对应关系以及Java实践

    kafka是由Apache软件基金会开发的一个开源流处理平台 kafka是一种高吞吐量的分布式发布订阅消息系统 它可以处理消费者在网站中的所有动作流数据 kafka中partition类似数据库中的分表数据 可以起到水平扩展数据的目的 比如
  • wifi服务器dns未响应,wifi显示dns未响应怎么解决

    产品型号 ASUS S340MC 系统版本 Windows 10 1 先重启电脑试试 或者将路由器关掉重新打开 2 设置系统网络服务 1 点击电脑左下角的 开始 找到并点击 设置 2 在Windows设置界面点击 网络和Internet 接
  • 如何通过python实现一个web自动化测试框架?

    要实现一个web自动化测试框架 可以使用Python中的Selenium库 它是最流行的Web应用程序测试框架之一 以下是一个基本的Python Selenium测试框架的示例 如果你想学习更详细的web自动化测试教程 我这边给你推荐一个详
  • Ant Design Pro V4 修改请求配置(api改为服务器地址 请求Content-Type改为form)

    修改api地址 Ant Design Pro 如果 dev 环境要接入自己的服务端api 需要修改 config proxy ts 中的代理设置 原配置 dev api target https preview pro ant design
  • Flutter中的widget

    StatelessWidget和 StatefulWidget是 flutter的基础组件 日常开发中自定义 Widget都是选择继承这两者之一 也是在往后的开放中 我们最多接触的Widget StatelessWidget 无状态的 展示
  • 小新700黑苹果_联想小新Pro14、Pro13、YOGA 14s 2021都有啥区别——联想的刀工

    结论 小新Pro13 13寸爆款 2 5K屏幕 35W散热 小新Pro14 14寸爆款 2 2K屏幕 38W散热 YOGA 14s 14寸旗舰 2 8K高刷新率屏幕 38W散热 从小新Pro13说起 联想2019年发布的小新Pro13这个机
  • Window入侵排查思路

    一 开机启动项 1 在Windows系统中查看启动项 首先要排查的就是开机自启项 开始菜单里的程序中的自启 C Users Administrator AppData Roaming Microsoft Windows StartMenu
  • 【js】使用window.addEventListener后报错 Cannot read properties of null (reading ‘getAttribute‘)的解决方法

    场景 使用window addEventListener resize function 给echarts图表做自适应 但是在切换路由时 其他页面的控制台会疯狂报错 Cannot read properties of null readin
  • 50种网络故障及解决方法

    1 故障现象 网络适配器 网卡 设置与计算机资源有冲突 分析 排除 通过调整网卡资源中的IRQ和I O值来避开与计算机其它资源的冲突 有些情况还需要通过设置主板的跳线来调整与其它资源的冲突 2 故障现象 网吧局域网中其他客户机在 网上邻居
  • 常用几种数据库,取前10条记录的sql语句写法

    access select top 10 from table1 where 1 1 db2 select column from table where 1 1 fetch first 10 rows only mysql select
  • spring源码--09--IOC高级特性--BeanPostProcessor后置处理器的实现

    spring源码 09 IOC高级特性 BeanPostProcessor后置处理器的实现 1 BeanPostProcessor 后置处理器是一个监听器 可以监听容器触发的Bean声明周期事件 后置处理器向容器注册以后 容器中管理的Bea
  • Linux THREAD 线程技术

    NPTL Nativ Posix Thread Library 1 几种线程类型 用户级线程 1 用户级线程无法被系统识别为调度单位 所以不会分发跟多的CPU使用资源 时间片 2 用户级线程无需系统干预 因定义与使用全部在用户层完成 上下文
  • Vue脚手架(vue-cli)搭建和目录结构详解

    一 环境搭建 1 安装node npm webpack 不多说 2 安装vue cli脚手架构建工具 打开命令行工具输入 npm install vue cli g 安装完成之后输入 vue V 注意这里是大写的 V 如果出现相应的版本号