【前端知识点总结】Vue(一) 脚手架 及 ESlint

2023-11-19

Vue

前端攻城狮必备技能

1 . 什么是 Vue

渐进式 javacript 框架

  • 渐进式 : 按需添加功能, 逐渐集成
  • 框架 : 拥有自己的语法规则( 例 Vue )
    • 项目对其依赖很高, 业务开发中如果选择了框架最好不要轻易更换框架, 否则需要重构的地方很多
  • 库 : 自定义方法和属性的集合( 例 jquery )
    • 项目对其依赖较小, 可以搭配其他库一起使用

2 . Vue 脚手架

Vue 的开发模式

传统开发模式 : 基于 HTML、 css、 js 文件的开发 vue项目(不推荐)

工程化开发模式 : 基于 webpack 开发 vue 项目(业务推荐使用)

  • 优点 : 易于管理文件,开发模式清晰,很好的隔离d代码,代码容易维护
  • 缺点 : webpack 环境,每次开发都需要进行繁琐的配置

Vue 脚手架

Vue 脚手架是什么

  • 脚手架是为了保证工程顺利进行而搭设的工作平台,一套官方提供的标准 webpack 模板

脚手架好处

  • 便于使用 webpack 零配置, 支持 babel , 支持 css、less ,支持开发服务器

Vue 脚手架使用

  1. 下载全局包 : yarn global add @vue/clinpm install -g @vue/cli(全局下载,后续用脚手架开发不用进行)
    • 注意 : 下包完成后,记得测试是否安装成功 vue -V (有版本号就是成功了)
  2. 用脚手架创建默认 Vue2 项目 : vue create 项目名 (指令运行后选择 vue2 )
  3. 启动服务 : cd 项目名 切换到新建项目目录下 yarn serve 启动项目

image.png

脚手架目录

脚手架目录文件的含义及作用

 vuecil-demo         # 项目目录
    ├── node_modules # 项目依赖的第三方包
    ├── public       # 静态文件目录
      ├── favicon.ico# 浏览器小图标
      └── index.html # 单页面的html文件(网页浏览的是它)
    ├── src          # 业务文件夹
      ├── assets     # 静态资源
        └── logo.png # vue的logo图片
      ├── components # 组件目录
        └── HelloWorld.vue # 欢迎页面vue代码文件 
      ├── App.vue    # 整个应用的根组件
      └── main.js    # 入口js文件
    ├── .gitignore   # git提交忽略配置
    ├── babel.config.js  # babel配置
    ├── package.json # 依赖包列表
    ├── README.md    # 项目说明
	└── yarn.lock    # 项目包版本锁定和缓存地址

Vue 脚手架的主要文件

  • node_modules : 下载的第三方依赖包
  • public/index.html : (浏览器入口)浏览器运行的网页
  • src/main.js : Vue 脚手架打包的入口文件(App.vue 挂载在这里)
  • src/App.vue : Vue 组件页面入口(所有Vue文件最终关联此文件)
  • package.json : 依赖包列表,及脚手架配置信息

Vue 脚手架自定义配置

新建配置文件 vue.config.js

module.exports = {
  devServer: { // 自定义服务配置
    open: true, // 自动打开浏览器
    port: 3000
  }
}

注意 : 和 webpack 的配置一样

3 . 自定义创建 Vue 脚手架

1 . 创建项目 vue create 项目名称

2 . vue-cli 选择第三个,自定义配置

  • Default ([Vue 2] babel, eslint)(默认的vue2脚手架模板)
  • Default (Vue 3) ([Vue 3] babel, eslint)(默认的vue3脚手架模板)
  • Manually select features(自定义)

3 . vue-cli 配置功能选择

  1. Manually select features(手动选择功能)

    • (*) Choose Vue version
    • (*) Babel
    • ( ) TypeScript
    • ( ) Progressive Web App (PWA) Support
    • (*) Router
    • (*) Vuex
    • (*) CSS Pre-processors
    • (*) Linter / Formatter
    • ( ) Unit Testing
    • ( ) E2E Testing
      注意 : 按需求选择,业务中常用以上六种
  2. Choose a version of Vue.js that you want to start the project with (Use arrow keys)(选择vue的版本)

    • 2.x
    • 3.x
  3. Use history mode for router? (Requires proper server setup for index fallback in production) (Y/n) (路由模式是否为 history

    • n
  4. Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): (Use arrow keys)(选择CSS预处理器)

    • Sass/SCSS (with dart-sass)
    • Sass/SCSS (with node-sass)
    • Less
    • Stylus
  5. Pick a linter / formatter config: (Use arrow keys)(ESLint配置)

    • ESLint + Airbnb config
    • ESLint + Standard config(标准配置)
    • ESLint + Prettier
  6. Pick additional lint features: (Press <space>to select,<a> to toggle all, <i> to invert selection)

    • (*) Lint on save
    • ( ) Lint and fix on commit
  7. Where do you prefer placing config for Babel, ESLint, etc.? (Use arrow keys)(ESLint、Babel等插件在哪儿配置)

    • In dedicated config files(独立的配置文件)
    • In package.json
  8. Save this as a preset for future projects? (y/N)(是否保存配置)

    • y

保存后输入名称下次创建 Vue 脚手架项目时可以直接使用

4 . 脚手架-ESlint

什么是 ESlint : 是一个工具,用来约束团队成员的代码风格,创建脚手架项目时就配置好了

  • 行业推荐的规范 : 在创建项目时,我们使用的是 ESLint + Standard config(标准配置) 代码风格的规则
  • 自定义的规范 : 业务中团队或者个人可以自行约定一套规范

使用ESLint的好处 : 多人协作开发时代码风格统一

  • 例如 :
    • JS 中的字符串,统一使用单引号表示
    • 代码缩进,统一使用两个空格
    • 不允许出现 ≥2 个的连续空行

Vue脚手架中自定义 ESlint 规范

  • 首先找到项目根目录下的 .eslintrc.js 配置文件
  • 在 rules 配置选项中,修改默认的语法规则
module.exports = {
  root: true, // 当前项目使用这个配置文件, 不会往父级目录找.eslintrc.js文件
  env: { // 指定eslint启动环境(vuecli底层是node支持), browser: true也可以在浏览器设置
    node: true
  },
  extends: [ // 扩展配置
    'plugin:vue/essential', // vue里必须的规则
    '@vue/standard' // 使eslint继承@vue/cli脚手架里的 - standard标准
  ],
  parserOptions: { // 对新语法使用eslint
    parser: 'babel-eslint' // 使用babel-eslint 来解析新语法ES6
  },
  // 这里可以进行自定义规则配置
  // key:规则代号
  // value:具体的限定方式
  //   "off" or 0 - 关闭规则
  //   "warn" or 1 - 将规则视为一个警告(不会影响退出码),只警告,不会退出程序
  //   "error" or 2 - 将规则视为一个错误 (退出码为1),报错并退出程序
  rules: { // 自定义规则 - 其实上面集成后有很多内置的规则, 这里可以进行规则的一些修改
    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', // 上线环境用打印就报警告, 开发环境关闭此规则
    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', // debugger可以终止代码执行
    'no-multiple-empty-lines': 'off' // 不允许有连续多行空行(关闭规则)
  }
}

注意 :

  • rules是一个对象,以键值对的格式来约定规则
    • 键名是规则名
    • 值是这条规则的具体说明, 最常见的有off,warn,error。

ESLint 插件 :

  • 「Alt + Shift + F」按照 ESLint 规则自动格式化
  • 「Ctrl + S」保存时按照 ESLint 规则自动格式化
  • 详情查看此文章https://juejin.cn/post/7052289253761368077

ESLint 语法规则,详情请查阅官方文档 https://eslint.bootcss.com/docs/rules/

5 . 脚手架中的 .vue 文件

.vue格式文件的特点

  • Vue2 中 template 里只能有一个根标签

  • vue 文件,是独立的组件,作用域互不影响

  • style 配合 scoped 属性, 保证样式只针对当前 template 内标签生效

  • .vue文件配合 webpack , 最终都关联到 APP.vue 文件中插入到 index.html

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

【前端知识点总结】Vue(一) 脚手架 及 ESlint 的相关文章

随机推荐

  • 我说的不是小鹅通

    互联网大致是这么三极 1 内容 应用表现为新闻 文学 知识 音乐 视频 直播 内容或专业媒体原创 或自媒体 UGC 或爬虫聚合 表现形式为文字 图片 音频 视频 承载物是一个个的工具App 2 游戏 3 电子商务 1 数据内容 小鹅通跟随的
  • 从零开始写一个Javascript解析器

    最近在研究 AST 之前有一篇文章 面试官 你了解过 Babel 吗 写过 Babel 插件吗 答 没有 卒 为什么要去了解它 因为懂得 AST 真的可以为所欲为 简单点说 使用 Javascript 运行Javascript代码 这篇文章
  • 手摸手带你玩转Vue3——Vue2升级Vue3

    今年年初 尤大大公布了一个重磅消息 将Vue3作为Vue的默认版本 这无疑不是对我们开发人员的内卷煽风点火 vue默认版本改动意味着 官方将会把Vue研发重心放到vue3上 vue2也开始走下坡路 至于淘汰过时只是时间问题了 从而周边生态
  • VMWare虚拟机网络配置

    Bridged 桥接模式 桥接模式相当于虚拟机和主机在同一个真实网段 VMWare充当一个集线器功能 一根网线连到主机相连的路由器上 所以如果电脑换了内网 静态分配的ip要更改 图如下 NAT 网络地址转换模式 NAT模式和桥接模式一样可以
  • 【华为OD机试c++/python】最少线段覆盖【 2023 Q1

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 给定坐标轴上的一组线段 线段的起点和终点均为整数并且长度不小于1 请你从中找到最少数量的线段 这些线段可以覆盖住所有线段 输入描述 第一行输入为
  • A-小美种果树(二分)-- 牛客周赛 Round 12

    输入 1 2 10 输出 6 解析 二分 注意两端端点L R的取值 include
  • html怎样设置同意服务条款,用户使用协议及服务条款.html

    用户使用协议及服务条款 axure utils getTransparentGifPath function return resources images transparent gif axure utils getOtherPath
  • 智慧煤矿技术理论篇1-5G与WiFi6技术

    5G VS WiFi6 5G技术 第五代移动通信技术 英语 5th generation mobile networks或5th generation wireless systems 5th Generation 简称5G或5G技术 是最
  • 数据结构-栈和队列(C/C++)

    栈和队列 一 实验目的 熟练掌握栈以及队列的结构特点 二 实验内容 运用栈和队列的结构特点完成相应的基本操作和实例 三 实验步骤 过程以及运行程序截图 栈 问题1 栈的基本操作 在插入栈元素的时候做一个统一输入 达到一次性任意输入0 Sta
  • 【每日一练】79—CSS实现扫描二维码动画

    二维码的应用越来越普通 加个好友 付个款 做个核酸 想去一个地方 还要扫个场所码 总之 需要二维码的地方越来越多 因此 在这样的大环境里 如何让你的码与众不同 引人注意 就显得非常重要 今天我们就来练习一个二维码的动画效果 具体效果如下 看
  • html5自带属性验证表单必填

    html5自带属性验证表单必填 2014年02月25日 Html5 共 366字 字号 小 中 大 6条评论 阅读 6 515 次 为了防止恶意注册 通常会验证表单必填 实现方法以js为主 略微麻烦 今天才发现 html5如今已自带验证表单
  • 注册表常用键值意义

    HKEY CURRENT USER Software Policies Microsoft Internet Explorer Control Panel Internet Explorer选项类 HomePage dword 000000
  • IDEA下java程序的简单调试

    一 本次任务实现的是一个java的程序调试 首先本次进行调试的一个程序是实现从1累加到100的功能 是在IDEA下进行编写的 如图所示 将其运行之后得到的结果如图所示 把第12行的输出语句给取消掉注释之后再运行一次得到的结果如图所示 这里由
  • day15

    文章目录 一 平衡二叉树 二 回溯小难 二叉树的所有路径 三 左叶子之和 一 平衡二叉树 110 平衡二叉树 依旧是使用后序遍历来统计高度 递归过程中 发现某节点的左右子树的高度差超过了1 我们就直接返回 1 不返回节点的高度了 递归函数的
  • CentOS安装Docker详细步骤

    一 简介 Docker 是一个开源的应用容器引擎 让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中 然后发布到任何流行的 Linux 或 Windows 操作系统的机器上 也可以实现虚拟化 容器是完全使用沙箱机制 相互之间不会有任何
  • ubuntu下搭建elasticsearch集群

    在Ubuntu 18 04 1 LTS搭建一个简单的elasticsearch集群demo 具体情况如下 集群名称 elasticsearch cluster demo 主节点 1个 node master one 数据节点 2个 node
  • 【芯片驱动】2. CMT2300A配合硬件测试(灵敏度和发射功率)的软件实现

    前言 在开发一款无线射频产品的时候 软件是一部分 硬件也是一部分 而决定无线收发性能的 首先是硬件的匹配电路 然后才到软件部分的优化 一款无线射频产品 首先需要先决定是在那个频率范围内 当然是国家允许的范围内 然后硬件则需要在基于这个频点范
  • 逻辑综合——工艺库

    一 库文件的设置 运行DC时需要用到的库文件有 目标库 target library 链接库 link library 符号库 symbol library 算术运算库 synthetic library 1 目标库 目标库是综合后电路网表
  • xml转义字符

    在mybatis在编写sql时不能在XML里直接使用 lt 或者是 gt 在这里需要使用转义字符替换 下面列举常用的xml转义对应 1 lt lt 小于号 2 gt gt 大于号 3 amp 和 4 apos 单引号 5 quot 双引号
  • 【前端知识点总结】Vue(一) 脚手架 及 ESlint

    Vue 前端攻城狮必备技能 1 什么是 Vue 渐进式 javacript 框架 渐进式 按需添加功能 逐渐集成 框架 拥有自己的语法规则 例 Vue 项目对其依赖很高 业务开发中如果选择了框架最好不要轻易更换框架 否则需要重构的地方很多