【vue教程】一. 环境搭建与代码规范配置

news2024/9/21 10:38:46

目录

    • 引言
    • Vue 框架概述
      • 起源与设计理念
      • 核心特性
      • 优势
    • Vue 开发环境搭建
      • 环境要求
      • 安装 Vue CLI
      • 创建 Vue 项目
      • 项目结构介绍
      • 运行与构建
    • 组件实例
      • 基础模板
      • 响应式更新
    • 代码规范
      • 为什么要使用代码规范
      • 在 Vue 项目中使用 ESLint 、Prettier
      • ESLint
        • 配置 ESLint
        • rules 自定义错误级别
      • Prettier
      • 集成到开发流程(husky)
    • 常用的 Vue 开发工具和插件
      • 代码编辑器
      • 浏览器开发者工具
      • 其他插件
    • 总结

引言

Vue.js 是一个构建用户界面的渐进式框架,它设计简洁,易于上手,同时具备强大的功能来支持复杂的单页应用开发。本篇文章将作为我们 Vue 探索之旅的开篇,带领您了解 Vue 的基本概念,搭建 Vue 开发环境,并为后续深入学习打下坚实的基础。

在这里插入图片描述

正文开始如果觉得文章对您有帮助,请帮我三连+订阅,谢谢

Vue 框架概述

起源与设计理念

Vue.js 由前谷歌工程师尤雨溪于 2014 年创建,其设计灵感来源于 Angular 和 Knockout.js,旨在提供一个轻量级、灵活且易于集成的前端解决方案。

核心特性

  • 响应式数据绑定:Vue 通过数据绑定机制,自动将数据状态的变更同步到视图层
  • 组件系统:Vue 的组件化开发模式,使得代码更加模块化可复用
  • 虚拟 DOM:Vue 使用虚拟 DOM 来提高性能和效率,减少真实 DOM 操作
  • 易于上手:Vue 渐进式框架(学习曲线相对平缓),适合初学者快速入门。

优势

  • 轻量级:Vue 的核心库只关注视图层,体积小,加载速度快
  • 灵活性:Vue 可以轻松集成到任何项目中,无论是小型项目还是大型应用。
  • 生态系统:Vue 拥有丰富的生态系统,包括官方维护的路由器 Vue Router、状态管理库 Vuex、服务端渲染Vue SSR、静态站点生成GridSome 等。

Vue 开发环境搭建

环境要求

  • Node.js:Vue CLI(命令行工具)需要 Node.js 环境。(推荐使用 nvm 来对 Node 版本进行管理)
  • npm/yarn:包管理工具,用于安装 Vue CLI。(推荐使用 nrm 来对 npm 镜像仓库进行管理)

安装 Vue CLI

通过 npm 或 yarn 全局安装 Vue CLI:

npm install -g @vue/cli
# 或者
yarn global add @vue/cli

创建 Vue 项目

使用 Vue CLI 创建一个新的 Vue 项目:

vue create my-vue-app

拉取 2.x 模板 (webpack 旧版本)

Vue CLI >= 3 和旧版使用了相同的 vue 命令,所以 Vue CLI 2 (vue-cli) 被覆盖了

npm install -g @vue/cli-init
# `vue init` 的运行效果将会跟 `vue-cli@2.x` 相同
vue init webpack vue2-template

cd vue2-template
npm install
npm run dev

image.png

按照提示选择预设手动配置项目。项目的配置会被保存在 ~/.vuerc JSON 文件中

项目结构介绍

  • src/:源代码目录。
  • public/:静态资源目录。
  • node_modules/:依赖模块目录。
  • package.json:项目配置文件。

运行与构建

  • 开发模式:启动本地开发服务器,实时预览应用。
    npm run serve
    
  • 生产模式:构建生产环境的应用。
    npm run build
    

组件实例

基础模板

创建一个简单的 Vue 组件:

<template>
  <div id="app">
    <h1>{{ message }}</h1>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        message: "Hello Vue!",
      };
    },
  };
</script>

<style scoped>
  h1 {
    color: #42b983;
  }
</style>

这个组件展示了 Vue 的数据绑定和样式作用域。

响应式更新

修改数据,观察视图的响应式更新:

// 在methods中添加一个方法
methods: {
  updateMessage() {
    this.message = 'Vue is awesome!';
  }
}

在模板中添加按钮,触发updateMessage方法:

<button @click="updateMessage">Update Message</button>

代码规范

为什么要使用代码规范

  1. 提高代码质量:ESLint 可以帮助开发者发现潜在的错误和代码异味,从而提高代码的质量和可维护性。

  2. 统一代码风格:Prettier 确保了代码风格的一致性,避免了因个人编码习惯不同而导致的代码风格差异。

  3. 节省时间:自动化的代码检查和格式化减少了人工审查代码的时间,提高了开发效率。

  4. 集成开发环境(IDE)支持:大多数现代 IDE 和编辑器都支持 ESLint 和 Prettier,提供了实时的代码检查和格式化功能。

  5. 团队协作:在团队项目中,ESLint 和 Prettier 帮助新成员快速适应项目的编码规范,减少了代码审查的工作量。

  6. 持续集成(CI):ESLint 和 Prettier 可以集成到 CI 流程中,确保所有提交的代码都符合项目的标准。

  7. 避免代码冲突:Prettier 的自动格式化功能减少了因手动格式化引起的代码冲突。

在 Vue 项目中使用 ESLint 、Prettier

首先,你需要安装 ESLint、Prettier 以及它们对应的 Vue 插件和配置包。

npm install eslint prettier eslint-plugin-vue eslint-config-prettier --save-dev

ESLint

ESLint 是一个开源的 JavaScript 代码质量和代码风格检查工具。它主要用于识别和报告 JavaScript 代码中的模式,这些模式可以是错误、最佳实践的偏差,或者是代码风格问题。ESLint 非常灵活,允许开发者自定义规则来适应不同的开发需求和团队标准。

使用 ESLint 命令行工具创建一个配置文件:

npx eslint --init

这个命令会询问你一系列问题,帮助你生成一个.eslintrc配置文件。选择使用 Prettier 作为代码格式化工具,并选择 Vue 作为你的项目类型。

配置 ESLint

.eslintrc文件中,你可以添加或修改规则,例如:

// https://eslint.org/docs/user-guide/configuring

module.exports = {
  root: true,
  parserOptions: {
    parser: 'babel-eslint',
  },
  env: {
    browser: true,
  },
  extends: [
    // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
    // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
    'plugin:vue/essential',
    // https://github.com/standard/standard/blob/master/docs/RULES-en.md
    'standard',
  ],
  // required to lint *.vue files
  plugins: ['vue'],
  // 添加自定义规则
  rules: {
    // allow async-await
    'generator-star-spacing': 'off',
    // allow debugger during development
    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
  },
}
rules 自定义错误级别
  • 错误(Errors) - 2
  • 警告(Warnings) - 1
  • 关闭(Off) - 0
// 示例
{
  "rules": {
    "no-undef": 2, // 错误级别
    "no-unused-vars": ["warn", { "args": "none" }], // 警告级别
    "semi": [0, "never"] // 关闭规则
  }
}

在 Vue 项目的package.json文件中,添加以下脚本:

"scripts": {
   "lint": "eslint --ext .js,.vue src  --fix",
}

Prettier

Prettier 是一个流行的代码格式化程序,它通过解析代码并重新打印来强制执行一致的样式规则。Prettier 的目标是减少在代码格式化上的争议,让开发者可以专注于代码本身的逻辑,而不是代码的外观。

创建一个.prettierrc文件来定义 Prettier 的配置选项:

{
  "semi": false,
  "singleQuote": true,
  "printWidth": 100,
  "tabWidth": 2,
  "useTabs": false,
  "endOfLine": "auto"
}

在 Vue 项目的package.json文件中,添加以下脚本:

"scripts": {
  "format": "prettier --write 'src/**/*.{js,vue}'"
}

集成到开发流程(husky)

  • 在提交前运行 lint 和 format:你可以使用 Husky 和 Lint-staged 来在提交前自动运行这些脚本。
    在这里插入图片描述
npm install husky lint-staged --save-dev

package.json中添加:

"husky": {
  "hooks": {
    "pre-commit": "lint-staged"
  }
},
"lint-staged": {
  "**/*": "prettier --write --ignore-unknown", //格式化
  "src/**.{js,jsx,ts,tsx}": "eslint --ext .js,.jsx,.ts,.tsx", //对js文件检测
}
  • 在 IDE 中集成:确保你的 IDE 或编辑器(如 VSCode)安装了 ESLint 和 Prettier 插件,这样可以在编码时获得实时的代码质量反馈。

常用的 Vue 开发工具和插件

代码编辑器

  • VSCode:支持 Vue 的官方插件,提供语法高亮和智能提示。
  • WebStorm:专为 JavaScript 和 Vue 开发设计的 IDE。

浏览器开发者工具

  • Vue Devtools:Vue.js 开发者工具,用于在浏览器中检查 Vue 应用的状态。

其他插件

  • eslint-plugin-vue:为 Vue.js 应用程序提供额外的 ESLint 规则。
  • vue-loader:Vue 的模块加载器,用于构建单文件组件。

总结

通过本篇文章,我们对 Vue.js 有了一个基本的了解,并且成功搭建了 Vue 开发环境。在接下来的专栏文章中,我将深入探讨 Vue 的各个方面,包括组件化开发、路由管理、状态管理等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1923299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux杂货铺】3.程序地址空间

1.程序地址空间的引入 fork(&#xff09;函数在调用的时候子如果是子进程则返回0&#xff0c;如果是父进程则返回子进程的pid&#xff0c;在代码中我们分别在子进程和父进程读取全局变量g_val的时候居然出现了俩个不同的值。如下&#xff1a; #include<stdio.h> #includ…

【Linux信号】阻塞信号、信号在内核中的表示、信号集操作函数、sigprocmask、sigpending

我们先来了解一下关于信号的一些常见概念&#xff1a; 实际执行 信号的处理动作 称为信号递达。 信号从产生到递达的之间的状态称为信号未决。 进程可以选择阻塞(Block)某个信号。 被阻塞的信号产生时是处于未决状态的&#xff0c;知道进程解除对该信号的阻塞&#xff0c;该…

01. 课程简介

1. 课程简介 本课程的核心内容可以分为三个部分&#xff0c;分别是需要理解记忆的计算机底层基础&#xff0c;后端通用组件以及需要不断编码练习的数据结构和算法。 计算机底层基础可以包含计算机网络、操作系统、编译原理、计算机组成原理&#xff0c;后两者在面试中出现的频…

FGF14:脑部疾病新潜力靶标

成纤维细胞生长因子14&#xff08;FGF14&#xff09;是FGF11亚家族成员&#xff0c;在神经元的所有基本特性&#xff08;内在放电、兴奋性和抑制性神经元的突触传递和可塑性&#xff09;中发挥作用。 &#xff08;数据来源AlphaFold&#xff09; FGF14由247个氨基酸组成&#x…

一键运行 ComfyUI SD3!大规模医学 VQA 评测数据集上线,涉及超 20 个人体器官和部位

为了进一步推进 AI4S 的普适化&#xff0c;HyperAI超神经策划了「Meet AI4S」系列直播栏目。第一期直播将于 7 月 17 日 19:00 准时上线&#xff01; 我们邀请到了浙江大学遥感与地理信息系统博士生丁佳乐&#xff0c;他的分享主题为「神经网络为房价的空间异质性提供新解释」&…

c# 容器变换

List<Tuple<int, double, bool>> 变为List<Tuple<int, bool>>集合 如果您有一个List<Tuple<int, double, bool>>并且您想要将其转换为一个List<Tuple<int, bool>>集合&#xff0c;忽略double值&#xff0c;您可以使用LINQ的S…

Python函数 之 变量

1.引用【了解】 定义变量的时候, 变量和数据 都会在内存开辟空间 变量所对应的内存空间中存储的是 数据所在内存的地址 (平时理解为 将数据存储到变量中即可) 变量中保存数据的地址,就称为是引用 Python 中所有数据的传递,传递的都是引用(即地址) 赋值运算符(), 会改变变量的引…

全面升级的对象创建——抽象工厂模式(Python实现和JAVA实现)

1. 引言 大家好&#xff01;在之前的文章中&#xff0c;我们探讨了简单工厂和工厂方法模式&#xff1a; 轻松创建对象——简单工厂模式&#xff08;Python实现&#xff09; 轻松创建对象——简单工厂模式&#xff08;Java实现&#xff09; 灵活多变的对象创建——工厂方法模式…

鸿蒙瀑布流和欢迎页(1)

1.瀑布流 https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/arkui-ts/ts-container-waterflow.md他有官网文档&#xff0c;有个瀑布流的案例 自定义一类实现官方瀑布流接口 // WaterFlowDataSource.ets// 实现IDataSource接口的…

开发技术-Java BigDecimal 精度丢失问题

文章目录 1. 背景2. 方法3. 总结 1. 背景 昨天和小伙伴排查一个问题时&#xff0c;发现一个 BigDecimal 精度丢失的问题&#xff0c;即 double a 1.1;BigDecimal ba new BigDecimal(a).subtract(new BigDecimal(0.1));System.out.println(ba);输出&#xff1a; 1.000000000…

做数据线的绿联,怎么做NAS就不灵了?

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 姝琦 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦Midjourney 产品统筹 / bobo 场地支持 / 声湃轩北京录音间 绿联的NAS设备最近频频出问题&#xff0c;从升级系统需要擦除数据&#xff0c;到最近的SSL私钥泄露事件&…

【新书速递】使用MATLAB进行雷达系统分析和设计(第四版)(2022)

来源&#xff1a;公众号高山防务 一、目录 目录 1雷达定义和术语 1.1雷达系统分类和波段 1.1.1高频&#xff08;HF&#xff09;和甚高频&#xff08;VHF&#xff09;雷达&#xff08;A和B波段&#xff09; 1.1.2超高频&#xff08;UHF&#xff09;雷达&#xff08;C波段&am…

如祺出行破发,萝卜快跑走红:网约车平台何去何从?

文&#xff1a;互联网江湖 作者&#xff1a;刘致呈 Robotaxi第一股真的来了&#xff1f; 这两天自动驾驶圈儿热度不断&#xff0c;先是萝卜快跑热搜停不下来&#xff0c;然后广汽旗下网约车平台如祺出行就在港股成功上市。 招股书里&#xff0c;如祺出行自己定义自己是一家“…

机器学习——关于极大似然估计法的一些个人思考(通俗易懂极简版)

最近在回顾机器学习的一些相关理论知识&#xff0c;回顾到极大似然法时&#xff0c;对于极大似然法中的一些公式有些迷糊了&#xff0c;所以本文主要想记录并分享一下个人关于极大似然估计法的一些思考&#xff0c;如果有误&#xff0c;请见谅&#xff0c;欢迎一起前来探讨。当…

昇思25天学习打卡营第9天|MindSpore静态图加速

打卡 目录 打卡 AI编译框架运行模式 动态图模式PyNative 手动控制动态图运行示例-全局context 静态图模式Graph 手动控制静态图运行示例-全局context ​编辑 jit 装饰器加速图编译-例 jit函数变换方式加速图编译-例 jit 加速某个部分的神经网络模块-例 静态图的语法…

基因组、染色体和基因水平上可视化拷贝数变异(CNVs)

1.CNVmap简介 CNVmap是一种用于在基因组、染色体和基因水平上可视化拷贝数变异&#xff08;CNVs&#xff09;的工具。CNVkit和CNVpytor是一种检测全基因组拷贝数变异和变异的软件&#xff0c; 该工具的输入是从CNVkit / CNVpytor工具获得的**.cns和.cnr文件格式**。可用于CNV-…

云动态摘要 2024-07-12

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 数据库上云优选 阿里云 2024-07-04 RDS、PolarDB、Redis、MongoDB 全系产品新用户低至首年6折起! [免费体验]智能助手ChatBI上线 腾讯云 2024-07-02 基于混元大模型打造,可通过对话方式生成可视化…

基于stm32+小程序开发智能家居门禁系统-硬件-软件实现

视频演示&#xff1a; 基于stm32智能家居门禁系统小程序开发项目 视频还有添加删除卡号&#xff0c;添加删除指纹&#xff0c;关闭继电器电源等没有演示。 代码Git&#xff1a; https://github.com/Abear6666/stm32lock 总体功能&#xff1a; 本门禁系统主要解锁功能分别为卡…

Argo CD入门、实战指南

1. Argo CD概述 1.1 什么是 Argo CD Argo CD 是针对 Kubernetes 的声明式 GitOps 持续交付工具。 1.2 为什么选择 Argo CD 应用程序定义、配置和环境应具有声明性并受版本控制。应用程序部署和生命周期管理应自动化、可审计且易于理解。 2. Argo CD基础知识 在有效使用 Ar…

MySQL数据库day7.11

一&#xff0c;SQL概述 1.1 SQL语句语法 MySQL 数据库的 SQL 语句不区分大小写&#xff0c;关键字建议使用大写&#xff0c; 以分号结尾。例如&#xff1a; SELECT * FROM user; 使用 /**/ 、 -- 、 # 的方式完成注释 /* 多行注释 */ -- 单行注释 # 单行注释 SELECT * FRO…