首页 > 其他分享 >vue-cli详细说明

vue-cli详细说明

时间:2023-05-31 10:55:33浏览次数:35  
标签:vue cli App js Vue 详细 组件

vue-cli

单页面应用程序

单页面应用程序(Single Page Application)一个web网站只有唯一一个HTMl页面,所有功能&交互都在唯一一个页面完成

vue-cli

vue-cli是vue.js开发的标准工具,简化了基于webpack创建工程化的Vue项目的过程。

创建项目

基于vue-cli快速生成工程化的Vue项目:

vue create 名称

Manually select fewtures/选择手动配置

  • Babel(默认):使用 Babel 可以将最新的 JavaScript 语法转换为浏览器兼容的旧版本语法,以确保在各种浏览器上的兼容性。

  • TypeScript:TypeScript 是一种类型检查的 JavaScript 超集,它可以帮助你在开发过程中捕获潜在的错误,并提供更好的代码智能感知和文档化。

  • Progressive Web App (PWA) Support选择此选项可以启用 Progressive Web App(渐进式 Web 应用)支持,这使你的应用可以像原生应用一样具有离线访问、推送通知等功能。

  • Router:Vue Router 是 Vue.js 的官方路由管理器,它允许你在应用中实现页面之间的导航和路由。

  • Vuex:Vuex 是 Vue.js 的官方状态管理库,用于在大型应用程序中管理应用的状态和数据。

  • CSS Pre-processors:选择此选项可以启用使用 CSS 预处理器,如 Sass、Less 或 Stylus,来扩展和改进 CSS 的编写体验。

  • Linter / Formatter:选择此选项可以启用代码风格检查和格式化工具,如 ESLint 和 Prettier,以帮助你在开发过程中保持一致的代码风格和更好的代码质量。

  • Unit Testing:选择此选项可以启用单元测试框架,如 Jest 或 Mocha,用于编写和运行针对代码单元的测试。

  • E2E Testing:选择此选项可以启用端到端(End-to-End)测试框架,如 Cypress 或 Nightwatch,用于模拟和测试应用的完整流程和用户交互。

npm run serve尝试运行

作用

  1. 启动开发服务器:它会创建一个本地开发服务器,监听指定的端口(默认为 8080),并提供了一个 Web 界面用于实时预览你的应用程序。

  2. 实时构建和热重载:在开发模式下,当你进行代码修改时,Vue CLI 会实时重新构建你的应用程序,并通过热重载将更新后的内容实时显示在浏览器中,无需手动刷新页面。

  3. 错误检测和警告提示:开发服务器会监听你的代码变动并进行实时检测,如果存在错误或潜在问题,它会在控制台中给出相应的错误消息或警告提示,帮助你及时发现和修复问题。

通过使用 npm run serve,你可以在开发过程中更加高效地进行代码调试、样式修改和功能开发,同时获得实时的反馈和预览效果。

值得注意的是,npm run serve 只用于开发环境,并不适用于生产环境。在部署应用程序时,你需要使用其他命令(如 npm run build)来构建生产版本的应用程序。

通常运行在http://localhost:8080上。当你在浏览器中访问http://localhost:8080时,实际上是通过服务器加载和呈现你的Vue应用程序。

运行

terminal:npm run serve

> vue-cli-service serve

INFO Starting development server...


DONE Compiled successfully in 3552ms                                                                                     15:34:13


App running at:
- Local:   http://localhost:8080/
- Network: http://192.168.100.168:8080/

Note that the development build is not optimized.
To create a production build, run npm run build.

Local&Network分别是 本机 和 局域网 的访问地址。可以尝试在浏览器中打开。

 

npm run build

{
 "name": "a",
 "version": "0.1.0",
 "private": true,
 "scripts": {
   "serve": "vue-cli-service serve",
   "build": "vue-cli-service build"
},
 "dependencies": {
   "core-js": "^3.8.3",
   "vue": "^2.6.14"
},
 "devDependencies": {
   "@vue/cli-plugin-babel": "~5.0.0",
   "@vue/cli-service": "~5.0.0",
   "less": "^4.0.0",
   "less-loader": "^8.0.0",
   "vue-template-compiler": "^2.6.14"
}
}

打开 package.json, scripts里有serve&build

项目开发完了需要上线可以:npm run build

项目的目录结构

  • node_modules | 所有的第三方包存储在这里

  • public目录 | 包含 项目图标 和 单页面应用程序的首页

  • src目录 | 项目的 源代码

    index.html 中 built files will be auto injected

    当你构建生成的文件(例如打包后的 JavaScript 和 CSS 文件)时,这些文件会自动被注入到 HTML 文件中。

    这意味着在构建过程中,Vue CLI 会自动将生成的文件链接添加到 HTML 文件的适当位置,以便在浏览器中正确加载所需的资源。

  • .broswerslistrc | 用于配置项目所需的目标浏览器的文件。

  • .gitignore | git的忽略文件

  • babel.config.js | babel的配置文件,

    在创造项目配置文件时选择In dedicated config files(把Babel,Eslint等插件的配置项,放到自己独立的配置文件中。)

  • Jsconfig.json | 是一个用于配置 JavaScript 项目的文件,在 Vue 2 项目中通常不会使用到它。不过,如果你在 Vue 2 项目中使用了 TypeScript,那么它可能会起到一些作用。

  • package-lock.json |

  • package.json | 包管理配置文件

  • vue.config.js | 是一个用于配置 Vue 项目的文件,它允许你对构建过程进行自定义配置和扩展。该文件需要位于 Vue 项目的根目录下。

src目录

  • assets目录:存放第三方静态资源:图片资源,css样式表。。。

  • components:存放封装好的,可复用的 组件

  • App.vue:项目的根组件,定义整个应用程序的结构和布局(UI结构)。

  • main.js:项目的入口文件,整个项目的运行,要先执行main.js

在一个 Vue 项目中,App.vue 通常位于 src 目录下,作为项目的入口组件。它由三个部分组成:<template><script><style>

<template> 部分定义了应用程序的布局和内容。你可以在这里使用 Vue 的模板语法来构建页面结构,并绑定数据和事件。

<script>部分是组件的 JavaScript 部分。你可以在这里定义组件的逻辑、数据和方法等。name 属性用于指定组件的名称,这个名称将在组件之间的通信和引用中使用。

<style>部分用于定义组件的样式。你可以在这里编写 CSS 规则,对组件进行样式设置

App.vue 作为根组件,通常会包含其他子组件,并通过组件之间的嵌套和通信来构建整个应用程序的界面和功能。

在 Vue CLI 创建的项目中,App.vue 是默认的根组件,并在 main.js 中引入和渲染

项目的运行过程

在工程化的项目中,vue做的事很单纯:通过main.js把App.vue渲染到Index.html的指定区域中。

将App.vue里的UI结构替换掉index.html的#App-div盒子。

render函数指定的结构替换掉el所在的结构。

  • App.vue用来编写待渲染的模版结构。

  • index.html中需要预留一个el区域。

  • main.js把App.vue渲染到了index.html所预留的区域中。

main.js

//导入vue这个包,得到Vue构造函数。 
//导入了 Vue.js 库,并将其赋值给变量 Vue。这样可以在代码中使用 Vue.js 的功能和特性。
import Vue from 'vue'
//导入App.vue这个根组件,将来要把App.vue的模版结构渲染到HTML结构中。
//这行代码导入了一个名为 App 的 Vue 组件。
import App from './App.vue'//此行与App.vue相关

//这行代码设置 Vue.js 的生产提示为 false,表示在生产环境中禁用一些开发模式下的提示信息。
Vue.config.productionTip = false

//创建Vue的实例对象
new Vue({
 //el:'#app',
 //把render函数指定的组件渲染到HTML页面中
 render: h => h(App), //这里指定了要渲染App,将App.vue里的UI结构替换掉index.html的#App-div盒子。
}).$mount('#app')//将实例挂载到具有 id 属性为 app 的 DOM 元素上。

el:'#app'$mount('#app')作用完全相同,二选一。

标签:vue,cli,App,js,Vue,详细,组件
From: https://www.cnblogs.com/yxxcl51/p/17445406.html

相关文章

  • VUE2/3差异之模板写法
    OptionsAPI(选项API)传统的组件随着业务复杂度越来越高,代码量会不断的加大,整个代码逻辑都不易阅读和理解。虽然尽量一个文件不要写太多代码(1000行内),但总有一些大型组件要一个文件写很多代码优点:各选项编写写位置固定,结构清晰缺点:代码组织性差,相似的逻辑代码不便于复用逻......
  • vue中v-bind使用三目运算符绑定class
    <template><div><!--外边框的样式--><div:class="projectStatus===2?outlineDelay:outline"@click="clickProject(userProjectId)"><!--延期--><divv-if="projectStatus===2"......
  • Java中泛型详解,非常详细
    前言在前面的几篇文章中,详细地给大家介绍了Java里的集合。但在介绍集合时,我们涉及到了泛型的概念却并没有详细学习,所以今天我们要花点时间给大家专门讲解什么是泛型、泛型的作用、用法、特点等内容。有些粉丝朋友,在之前就一直很好奇,比如List<String>中的<String>部分到底......
  • Spectre.Console-实现自己的CLI
    引言最近发现自己喜欢用的Todo软件总是差点意思,毕竟每个人的习惯和工作流不太一样,我就想着自己写一个小的Todo项目,核心的功能是自动记录Todo执行过程中消耗的时间(尤其面向程序员),按照自己的想法实现一套GTD工作流。不想写Winform,WPF也写腻了,就想着学学MAUI、Avalonia......
  • [转]Clion+mingw环境下Assimp编译
    1、Clion+mingw环境下Assimp编译2、MinGW-w64下载......
  • Docker CLI docker container cp常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • 基于JAVA的springboot+vue学生综合测评系统,附源码+数据库+论文+PPT
    1、项目介绍本学生综合测评系统以springboot作为框架,b/s模式以及MySql作为后台运行的数据库,同时使用Tomcat用为系统的服务器。本系统主要包括首页,个人中心,学生管理,试题信息管理,测评试题管理,管理员管理,综合测评管理,系统管理,综合考试管理等功能,通过这些功能的实现基本能够满足日常......
  • 06Vue3-Pinia
    PiniaPinia是西班牙语piña(西班牙语中的“菠萝”)单词的形似。它是一个状态管理的库,用于跨组件、页面进行状态共享(这点和Vuex、Redux一样),同时兼容Vue2、Vue3,也并不要求你使用CompositionAPI;Pinia开始于大概2019年,最初是作为一个实验,目的为了探索Vuex的下一次迭代会是什么样......
  • ROS2-Beginner:CLI tools-1、环境配置
    1、环境配置目标:本教程告诉读者怎样准备ROS2环境背景:ROS2依赖于使用shell环境组合工作空间的概念,“工作区”是一个ROS术语,表示您使用ROS2进行开发的系统上的位置。ROS2的核心工作空间称为底层(underlay)。后续的局部工作空间称为覆盖(overlays)。当使用ROS2进行开发时,通常会同......
  • WebClient发送get、post请求(form、json)(功能封装)
    1.情景展示Spring3.0引入了RestTemplate,但是在后来的官方源码中介绍,RestTemplate有可能在未来的版本中被弃用,所谓替代RestTemplate,在Spring5中引入了WebClient作为非阻塞式ReactiveHttp客户端。WebClient处理单个HTTP请求的响应时长并不比RestTemplate更快,但是它处理并发的能......