【Vue3 + Vite】Vite搭建 项目解构 Vue快速学习 第一期

news2024/11/27 10:24:01

文章目录

  • Vue3介绍
  • Vue3通过Vite实现工程化:
  • 一、Vite创建Vue3工程化项目
    • 1.1 Vite+Vue3项目的创建、启动、停止
    • 1.2 Vite+Vue3项目的目录结构
  • 二、Vite+Vue3 项目组件(SFC入门)
    • 2.1 什么是VUE的组件 ?
    • 2.2 什么是.vue文件 ?
    • 2.3 工程化vue项目如何组织这些组件?
  • 三、Vite+Vue3 关于样式的导入方式
  • 四、Vite+Vue3 响应式和setup函数
    • 需求: 实现一个计数器
    • 代码实现计数器:
    • 响应式说明:
  • 总结
    • Vite创建Vue3工程化项目 流程图解:
    • Vue 组件:
    • 工程文件之间的关系:
    • 注意点 bug


Vue3介绍

1

  • Vue是一款用于构建用户界面的 JavaScript 框架
  • 它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。
  • 无论是简单还是复杂的界面,Vue 都可以胜任。
  • VUE官网

Vue的两个核心功能:

  • 声明式渲染:Vue 基于标准 HTML 拓展了一套模板语法,使得我们可以声明式地描述最终输出的 HTML 和 JavaScript 状态之间的关系。
  • 响应性:Vue 会自动跟踪 JavaScript 状态并在其发生变化时响应式地更新 DOM
    2

Vue3通过Vite实现工程化:

Vite官方文档
2

Vite的介绍:
项目搭建脚手架,比如:webpack

一、Vite创建Vue3工程化项目

1.1 Vite+Vue3项目的创建、启动、停止

vscode 命令行 直接运行 创建Vite:(创建create 时 报错 是要用管理员身份运行 vscode)

npm create vite@latest

输入y回车即可,下次使用vite就不会出现了,第一次运行会出现:
1
之后选择vue+JavaScript(or TS)选项。

安装项目所需依赖 :

  • cd进入刚刚创建的项目目录
  • npm install or npm i命令安装基础依赖
  • 启动项目 :
    npm run dev
  • 停止项目:
    命令行上 ctrl+c
  • 查看项目下的package.json
{
  "name": "demo01-vue3",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview"
  },
  "dependencies": {
    "vue": "^3.3.11"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^4.5.2",
    "vite": "^5.0.8"
  }
}

启动成功:http://localhost:5173/
1

1.2 Vite+Vue3项目的目录结构

2

  • public/ 目录:用于存放一些公共资源,如 HTML 文件、图像、字体等,这些资源会被直接复制到构建出的目标目录中。
  • src/ 目录:存放项目的源代码,包括 JavaScript、CSS、Vue 组件、图像和字体等资源。在开发过程中,这些文件会被 Vite 实时编译和处理,并在浏览器中进行实时预览和调试。以下是src内部划分建议:
      1. assets/ 目录:用于存放一些项目中用到的静态资源,如图片、字体、样式文件等。
      1. components/ 目录:用于存放组件相关的文件。组件是代码复用的一种方式,用于抽象出一个可复用的 UI 部件,方便在不同的场景中进行重复使用。
      1. layouts/ 目录:用于存放布局组件的文件。布局组件通常负责整个应用程序的整体布局,如头部、底部、导航菜单等。
      1. pages/ 目录:用于存放页面级别的组件文件,通常是路由对应的组件文件。在这个目录下,可以创建对应的文件夹,用于存储不同的页面组件。
      1. plugins/ 目录:用于存放 Vite 插件相关的文件,可以按需加载不同的插件来实现不同的功能,如自动化测试、代码压缩等。
      1. router/ 目录:用于存放 Vue.js 的路由配置文件,负责管理视图和 URL 之间的映射关系,方便实现页面之间的跳转和数据传递。
      1. store/ 目录:用于存放 Vuex 状态管理相关的文件,负责管理应用程序中的数据和状态,方便统一管理和共享数据,提高开发效率。
      1. utils/ 目录:用于存放一些通用的工具函数,如日期处理函数、字符串操作函数等。
  • vite.config.js 文件:Vite 的配置文件,可以通过该文件配置项目的参数、插件、打包优化等。该文件可以使用 CommonJS 或 ES6 模块的语法进行配置。
  • package.json 文件:标准的 Node.js 项目配置文件,包含了项目的基本信息和依赖关系。其中可以通过 scripts 字段定义几个命令,如 dev、build、serve 等,用于启动开发、构建和启动本地服务器等操作。
  • Vite 项目的入口为 src/main.js 文件,这是 Vue.js 应用程序的启动文件,也是整个前端应用程序的入口文件。在该文件中,通常会引入 Vue.js 及其相关插件和组件,同时会创建 Vue 实例,挂载到 HTML 页面上指定的 DOM 元素中。

vite的运行界面

  • 在安装了 Vite 的项目中,可以在 npm scripts 中使用 vite 可执行文件,或者直接使用 npx vite 运行它。下面是通过脚手架创建的 Vite 项目中默认的 npm scripts:(package.json)
{
  "scripts": {
    "dev": "vite", // 启动开发服务器,别名:`vite dev`,`vite serve`
    "build": "vite build", // 为生产环境构建产物
    "preview": "vite preview" // 本地预览生产构建产物
  }
}
  • 运行设置端口号:(vite.config.js)
//修改vite项目配置文件 vite.config.js
export default defineConfig({
  plugins: [vue()],
  server:{
    port:3000
  }
})

二、Vite+Vue3 项目组件(SFC入门)

2.1 什么是VUE的组件 ?

  • 一个页面作为整体,是由多个部分组成的,每个部分在这里就可以理解为一个组件
  • 每个.vue文件就可以理解为一个组件,多个.vue文件可以构成一个整体页面
  • 组件化给我们带来的另一个好处就是组件的复用和维护非常的方便
    2.1

2.2 什么是.vue文件 ?

  • 传统的页面有.html文件.css文件和.js文件三个文件组成(多文件组件)

  • vue将这文件合并成一个.vue文件(Single-File Component,简称 SFC,单文件组件)

  • .vue文件对js/css/html统一封装,这是VUE中的概念 该文件由三个部分组成 <script> <template> <style>

    • template标签 代表组件的html部分代码 代替传统的.html文件
    • script标签 代表组件的js代码 代替传统的.js文件
    • style标签 代表组件的css样式代码 代替传统的.css文件

2.3 工程化vue项目如何组织这些组件?

  • index.html是项目的入口,其中 <div id ='app'></div>是用于挂载所有组建的元素
  • index.html中的script标签引入了一个main.js文件,具体的挂载过程在main.js中执行
  • main.js是vue工程中非常重要的文件,它决定这项目使用哪些依赖,导入的第一个组件
  • App.vue是vue中的核心组件,所有的其他组件都要通过该组件进行导入,该组件通过路由可以控制页面的切换

2.3

三、Vite+Vue3 关于样式的导入方式

2

  • .vue文件中的style标签中

  • 将CSS样式保存到独立的CSS文件中,哪个文件需要,就导入即可

    • 在 script 标签中引入 :
      • import './style/test.css';
      • 2
    • style标签中引入 :
      • @import './style/test.css';
      • 2
  • 全局引入 在main.js中 添加导入:

    • import './style/test.css';
    • 写引入的资源的相对路径即可!
    • 某个样式需要在所有.vue中生效 使用全局
    • 这样

四、Vite+Vue3 响应式和setup函数

需求: 实现一个计数器

2

  • App.vue
<script>
    //存储vue页面逻辑js代码
</script>

<template>
    <!-- 页面的样式的是html代码-->
</template>

<style scoped>
    /** 存储的是css代码! <style scoped> 是 Vue.js 单文件组件中用于设置组件样式的一种方式。
    它的含义是将样式局限在当前组件中,不对全局样式造成影响。 */
</style>

代码实现计数器:

<script setup>
    //存储vue页面逻辑js代码
import { ref } from "vue";

let count = ref(1);

function countIncrease() {
  // 通过.value修改响应式数据
  count.value++;
}

function countDecrease() {
  count.value--;
}

function showCountChange() {
  alert(count.value);
}
</script>

<template>
  <div>
    <button @click="countIncrease">+</button>
    <!-- ref响应式数据在绑定到html上时不需要.value -->
    <span v-text="count"></span>
    <button @click="countDecrease">-</button>
    <button @click="showCountChange">显示</button>
  </div>
</template>

<style scoped>
</style>

响应式说明:

  • 响应式数据:在数据变化时,vue框架会将变量最新的值更新到DOM树中,即页面数据实时更新。
  • 非响应式数据:数据变化,不会实时更新
  • vue2 中 , 数据默认就是响应式的
  • vue3 中 , 数据需要经过 ref / reactive 函数 处理 才是响应式的。
    • ref / reactive 函数由 vue框架提供,直接 import 导入即可使用
    • ref使用需要注意的是,在script标签中操作响应数据要通过 .value的形式

<script type="module" setup> 通过setup关键字
可以省略 export default {setup(){ return{}}}这些冗余的语法结构


总结

npm create vite
npm install 
npm run dev

maven :

  1. 依赖下载
  2. 项目管理

npm 依赖下载
vite 项目管理

Vite创建Vue3工程化项目 流程图解:

2

Vue 组件:

1
vue

工程文件之间的关系:

2

  • App.vue 合体
<script setup>
import HelloWorld from "./components/HelloWorld.vue";
import HelloVue from "./components/HelloVue.vue";
</script>

<template>
  <div>
    <HelloVue></HelloVue>
    <h1 class="testColor">Hello App Vue</h1>
    <HelloWorld></HelloWorld>
  </div>
</template>

<style scoped>
.testColor {
  color: red;
}
</style>
  • 组件一:Hello World
<script setup>
</script>

<template>
  <h1 class="read-the-docs">Hello World</h1>
</template>

<style scoped>
.read-the-docs {
  color: #888;
}
</style>
  • 组件二:Hello Vue3
<script setup>
</script>

<template>
  <h1 id="greenColor">Hello Vue3</h1>
</template>

<style scoped>
#greenColor {
  color: green;
}
</style>

再通过 main.js 将合体App 塞到 index.html中显示
3

  • 为什么格式会自动居中,因为,默认有一个style.css
  • 2

注意点 bug

  • Internal server error: v-text will override element children.
    使用v-text指令时,元素内部不能有内容:
    bug
  • ref is not defined
    2
    导入 vue 的 ref 函数 才能使用

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

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

相关文章

易优CMS采集插件使用教程

本易优CMS采集教程说明如何使用易优CMS采集插件&#xff0c;批量获取互联网上的文章数据&#xff0c;并自动更新到易优cms&#xff08;eyoucms&#xff09;网站&#xff0c;快速丰富网站的内容。 目录 1. 下载并安装易优CMS采集插件 2. 对接网页文章采集工具 3. 采集数据发…

12nm工艺,2.5GHz频率,低功耗Cortex-A72处理器培训

“ 12nm工艺&#xff0c;2.5GHz频率&#xff0c;低功耗Cortex-A72处理器培训” 本项目是真实项目实战培训&#xff0c;低功耗UPF设计&#xff0c;后端参数如下&#xff1a; 工艺&#xff1a;12nm 频率&#xff1a;2.5GHz 资源&#xff1a;2000_0000 instances 为了满足更多…

Git系列---标签管理

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 1.理解标签2.创建标签…

Python之数据可视化(地图)

目录 一 基础地图应用 二 全国疫情图 一 数据准备 二 数据处理 二 湖北省疫情图 一 数据准备 二 数据处理 一 基础地图应用 导入map地图对象 from pyecharts.charts import Map map Map() 写入数据 data [("北京市",100),("上海市"…

【代码随想录】LC 349. 两个数组的交集

文章目录 前言一、题目1、原题链接2、题目描述 二、解题报告1、思路分析2、时间复杂度3、代码详解 前言 本专栏文章为《代码随想录》书籍的刷题题解以及读书笔记&#xff0c;如有侵权&#xff0c;立即删除。 一、题目 1、原题链接 349. 两个数组的交集 2、题目描述 二、解题报…

使用Spring AOP做接口权限校验和日志记录

文章目录 一、AOP 介绍1.1 AOP 应用场景1.2 AOP 中的注解 二、权限校验2.1 定义权限注解2.2 定义切面类2.3 权限验证服务2.4 织入切点2.5 测试 三、日志记录3.1 日志切面类3.2 异常统一处理 四、AOP 底层原理4.1 todo 一、AOP 介绍 AOP&#xff1a; 翻译为面向切面编程&#x…

“/“应用程序中的服务器错误.

<div id"m_category" class" round2"><h3>管理中心</h3><div class"con"> <p><a href"categorymanager.aspx">类别管理</a></p> /*我是这段代码出现问题*/ <p><a …

深入理解Java中的ForkJoin框架原理

在现代多核处理器的时代&#xff0c;有效地利用并行计算可以极大地提高程序的性能。Java中的ForkJoin框架是Java 7引入的一个并行计算框架&#xff0c;它提供了一种简单而高效的方式来利用多核处理器。在本文中&#xff0c;我们将深入探讨ForkJoin框架的原理和工作方式。 一、什…

MySQL进阶45讲【7】行锁

1 前言 在上一篇文章中&#xff0c;介绍了MySQL的全局锁和表级锁&#xff0c;今天我们就来讲讲MySQL的行锁。 MySQL的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁&#xff0c;比如MyISAM引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁&…

vue2父组件向子组件传值时,子组件同时接收多个数据类型,控制台报警的问题

最近项目遇到一个问题,就是我的父组件向子组件(公共组件)传值时,子组件同时接收多个数据类型,控制台报警的问题,如下图,子组件明明写了可同时接收字符串,整型和布尔值,但控制台依旧报警: 仔细检查父组件,发现父组件是这样写的: <common-tabletooltip :content=…

数据可视化工具选择指南:六款主流工具的综合评测

随着大数据时代的来临&#xff0c;数据可视化已成为各行业不可或缺的工具。本文将为您介绍市面上六款主流数据可视化工具&#xff0c;包括山海鲸可视化、Echarts、D3.js、Tableau、Power BI和Funnel.io&#xff0c;帮助您更好地了解并选择适合您的工具。 山海鲸可视化 山海鲸…

STM32学习笔记(六) —— 配置系统时钟

1.时钟树 从图中可以看出一共有四个时钟来源&#xff0c;分别是内部高速时钟、内部低速时钟、外部高速时钟接口、外部低速时钟接口&#xff0c;这些时钟源经过内部的倍频分频后提供给各外设使用。其中HSE与LSE需要由外部提供&#xff0c;可以是外部时钟直接输入&#xff0c;也可…

【八大排序】直接插入排序 | 希尔排序 + 图文详解!!

&#x1f4f7; 江池俊&#xff1a; 个人主页 &#x1f525;个人专栏&#xff1a; ✅数据结构冒险记 ✅C语言进阶之路 &#x1f305; 有航道的人&#xff0c;再渺小也不会迷途。 文章目录 一、排序的概念二、直接插入排序2.1 基本思想2.2 适用说明2.3 过程图示2.4 代码实现2.…

《Pandas 简易速速上手小册》第7章:Pandas 文本和类别数据处理(2024 最新版)

文章目录 7.1 文本数据的基本操作7.1.1 基础知识7.1.2 重点案例&#xff1a;客户反馈分析7.1.3 拓展案例一&#xff1a;产品评论的关键词提取7.1.4 拓展案例二&#xff1a;日志文件中的日期提取 7.2 使用正则表达式处理文本7.2.1 基础知识7.2.2 重点案例&#xff1a;日志文件错…

Python学习03 -- 函数相关内容

1.def --- 这个是定义函数的关键字 \n --- 这个在print()函数中是换行符号 1.注意是x, 加个空格之后再y 1.形式参数数量是不受限制的&#xff08;参数间用&#xff0c;隔开&#xff09;&#xff0c;传实参给形参的时候要一一对应 返回值 --- 函数返还的结果捏 1.写None的时…

vue-head 插件设置浏览器顶部 favicon 图标 - 动态管理 html 文档头部标签内容

目录 需求实现11. 安装插件2. 项目内 main.js 引入3. vue页面使用 实现2其他 需求 vue项目中浏览器页面顶部图标可配置 实现1 使用 vue-head 插件实现 vue-head 插件可实现 html 文档中 head 标签中的内容动态配置&#xff08;npm 官网 vue-head 插件&#xff09; 1. 安装插件 …

零基础怎么学鸿蒙开发?

对于零基础的学习者来说&#xff0c;掌握鸿蒙开发不仅是迈向新技术的第一步&#xff0c;更是开拓职业道路的重要机遇。随着鸿蒙系统在各行各业的应用逐渐扩展&#xff0c;对于掌握这一项技术的开发人员需求也随之增长。下文将为大家提供针对零基础学习鸿蒙开发的逻辑&#xff0…

视觉上下料技术在智能制造领域的发展趋势

在智能制造的大潮中&#xff0c;视觉上下料技术凭借其独特的优势&#xff0c;逐渐成为生产线上的“明星”。它不仅提高了生产效率&#xff0c;减少了人工干预&#xff0c;还为智能制造提供了强大的技术支持。那么&#xff0c;视觉上下料技术在智能制造领域的发展趋势如何呢&…

假期刷题打卡--Day20

1、MT1173魔数 一个数字&#xff0c;把他乘以二&#xff0c;会得到一个新的数字&#xff0c;如果这个新数字依然由原数中那些数字组成&#xff0c;就称原数为一个魔数。输入正整数N&#xff0c;检查它是否是一个魔数&#xff0c;输出YES或者NO。 格式 输入格式&#xff1a; …

《Vite 基础知识》基于 Vite4 的 Vue3 项目创建(受 Nodejs 版本限制可参考)

真实的工作中 Node.js 版本不是随意可升级的&#xff0c;此处记录一次折中升级实战~ 本章基于 Vite4 开发&#xff01; Vite5、 Vitepress&#xff0c; 都需要 Node.js 版本 18&#xff0c;20 node/npmVite4Vite5Vitepress14.21.3 / 8.13.2&#x1f4af;20.11.0 / 10.2.4&#…