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

目录

    • 引言
    • 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 的各个方面,包括组件化开发、路由管理、状态管理等。


欢迎在文章下方留言,分享学习 Vue 基础语法的心得体会,或提出在学习过程中遇到的问题。我将在后续的文章中提供解答和指导。


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python数据可视化(6)——绘制散点图

课程学习来源&#xff1a;b站up&#xff1a;【蚂蚁学python】 【课程链接&#xff1a;【【数据可视化】Python数据图表可视化入门到实战】】 【课程资料链接&#xff1a;【链接】】 Python绘制散点图查看BMI与保险费的关系 散点图: 用两组数据构成多个坐标点&#xff0c;考察…

【postgresql】pg_dump备份数据库

pg_dump 介绍 pg_dump 是一个用于备份 PostgreSQL 数据库的实用工具。它可以将数据库的内容导出为一个 SQL 脚本文件或其他格式的文件&#xff0c;以便在需要时进行恢复或迁移。 基本用法 pg_dump [选项] [数据库名] 命令选项 -h 或 --host&#xff1a;指定数据库服务器的主…

使用Elasticsearch Python SDK 查询Easysearch

随着数据分析需求的不断增长&#xff0c;能够高效地查询和分析大数据集变得越来越重要。Elasticsearch作为一种强大的分布式搜索和分析引擎&#xff0c;被广泛应用于各种场景。Easyearch 支持原生 Elasticsearch 的 DSL 查询语法&#xff0c;确保原业务代码无需调整即可无缝迁移…

S274钡铼技术多功能可编程RTU在矿山通风系统远程监控中的应用案例

在现代矿山运营中&#xff0c;安全和效率是至关重要的考量因素。矿山通风系统作为确保工作场所空气质量和员工安全的关键部分&#xff0c;需要可靠的监控和控制以应对复杂多变的工作环境。钡铼第四代RTU S274作为一款多功能可编程的无线工业物联网数据监测采集控制短信报警终端…

log4js node日志插件

最近不是特别忙在用express搭建后台项目&#xff0c;在开发过程中遇到了需要输入日志的问 本来想直接用node自带的console来实现&#xff0c;后来发现console输出的日志达不到自己希望的 日志格式&#xff0c;后来各种百度发现了log4js插件&#xff0c;本文来记录log4js插件使用…

C++客户端Qt开发——常用控件(多元素控件)

5.多元素控件 Qt中提供的多元素控件有&#xff1a; QListWidget QListView QTablewidget QTableview QTreewidget QTreeview xxWidget和xView之间的区别 以QTableWidget和QTableView为例. QTableView是基于MVC设计的控件.QTableView自身不持有数据.使用QTableView的时候需要…

[BJDCTF2020]EzPHP1

知识点&#xff1a;1. url编码绕过 2. %0a绕过 3. post优先级绕过 4. php伪协议 5. 数组的强类型比较绕过 6. 取反绕过 进入之后发现了一个很帅气的页面&#x1f60e;~ 看看网页源代码试试~ 是base32编码&#xff0c;尝试一下解码. https://www.qqxiuzi.cn/bianma/base.php 解…

Java二十三种设计模式-适配器模式(6/23)

适配器模式&#xff1a;使不兼容的接口协同工作的桥梁 引言 适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许不兼容的接口之间可以一起工作&#xff0c;通过将一个类的接口转换成客户端期望的另一个接口。 在计算机编程中&#x…

Java | Leetcode Java题解之第237题删除链表中的节点

题目&#xff1a; 题解&#xff1a; class Solution {public void deleteNode(ListNode node) {node.val node.next.val;node.next node.next.next;} }

Windows上LabVIEW编译生成可执行程序

LabVIEW项目浏览器(Project Explorer)中的"Build Specifications"就是用来配置项目发布方法的。在"Build Specifications"右键菜单中选取"New"&#xff0c;可以看到程序有几种不同的发布方法&#xff1a;Application(EXE)、Installer、.Net Inte…

Redis的热key解决

1、Redis热Key会带来哪些问题 1、流量集中&#xff0c;达到物理网卡上限。 当某一热点 Key 的请求在某一主机上超过该主机网卡上限时&#xff0c;由于流量的过度集中&#xff0c;会导致服务器中其它服务无法进行。 2、请求过多&#xff0c;缓存分片服务被打垮。 如果热点过于…

深入理解缓冲区:提升程序性能的关键

深入理解缓冲区&#xff1a;提升程序性能的关键 1、什么是缓冲区&#xff1f;2、缓冲区的作用3、缓冲区在Java中的应用4、如何操作缓冲区5、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 缓冲区&#xff08;Buffer&#xff09;是一种…

mac电脑pdf合并,macpdf合并成一个pdf

在数字化办公和学习的今天&#xff0c;pdf文件因其跨平台兼容性强、格式稳定而成为了最受欢迎的文档格式之一。但随之而来的问题也接踵而至&#xff0c;如何将多个pdf文件合并为一个&#xff1f;这不仅关系到文档的整洁性&#xff0c;更是时间管理的重要环节。今天&#xff0c;…

安全防御:防火墙基本模块

目录 一、接口 1.1 物理接口 1.2 虚拟接口 二、区域 三、模式 3.1 路由模式 3.2 透明模式 3.3 旁路检测模式 3.4 混合模式 四、安全策略 五、防火墙的状态检测和会话表技术 一、接口 1.1 物理接口 三层口 --- 可以配置IP地址的接口 二层口&#xff1a; 普通二层…

CSS在页面中使用的三种方式:行内样式、内嵌式样式表、链接式样式表

CSS样式如何在页面中使用&#xff0c;包含三种方式&#xff1a;行内样式、内嵌式样式表、链接式样式表。 CSS样式的使用系列博文&#xff1a; 《CSS在页面中使用的三种方式&#xff1a;行内样式、内嵌式样式表、链接式样式表》 《CSS选择器&#xff1a;基本选择器、复合选择器、…

[Vulnhub] violator ProFTPD+权限提升

信息收集 IP addressOpening Ports192.168.101.148TCP:21,80,2121 $ nmap -p- 192.168.101.148 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 21/tcp open ftp ProFTPD 1.3.5rc3 80/tcp open http Apache httpd 2.4.7 ((Ubuntu)) |_http-title: I Say...…

isaac sim中添加fix joint时,坐标系固定不动问题

例如想为机械臂末端增加一个工具坐标系&#xff0c;此时在flange中添加fixjoint&#xff0c;并依次添加flage和xform 如何xfrom没有添加rigid body属性的话&#xff0c;那么xfrom坐标系就会固定在世界坐标系中&#xff0c;程序启动后机械臂会移动到该坐标系处&#xff0c;并且无…

SpringBoot实现图形验证码

目录 项目创建 前端代码实现 约定前后端交互接口 需求分析 接口定义 Hutool工具 实现服务器端代码 引入依赖 获取验证码 验证码校验 调整前端代码 随着安全性的要求越来越高&#xff0c;目前许多项目中都使用了验证码&#xff0c;验证码也有各种类型&#xff0c;如 …

JavaWeb(四:Ajax与Json)

一、Ajax 1.定义 Ajax&#xff08;Asynchronous JavaScript And XML&#xff09;&#xff1a;异步的 JavaScript 和 XML AJAX 不是新的编程语言&#xff0c;指的是⼀种交互方式&#xff1a;异步加载。 客户端和服务器的数据交互更新在局部页面的技术&#xff0c;不需要刷新…

android13 frameworks里面常用的保存信息或者版本判断的方法

总纲 android13 rom 开发总纲说明 目录 1.前言 2. 数据库 2.1 代码读取用法参考 3.prop 属性配置 3.1 property的key值有哪些特点 4.区别 5. 其他数据存储 6.彩蛋 1.前言 frameworks 不像我们一般开发app那样,很多应用保存的方法都无法使用。这里记录我们系统rom开…