Skip to content

Commit 21ed2d5

Browse files
committed
备份: 2025-01-08 18:10:18
1 parent b652f0a commit 21ed2d5

File tree

2 files changed

+246
-31
lines changed

2 files changed

+246
-31
lines changed

src/develop/FrontEnd/Vue.md

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
> 官方文档:
33
> [简介 | Vue.js](https://cn.vuejs.org/guide/introduction.html)
44
5-
# 1. 简介&环境配置
5+
## 1. 简介&环境配置
66

77
特点和优势
88
- **响应式数据绑定**:Vue.js 提供强大的响应式数据绑定系统,确保数据的变化能够自动反映到视图层,减少了开发者手动操作 DOM 的需要。
@@ -12,16 +12,16 @@
1212

1313
使用之间要安装nodejs、npm
1414

15-
## 创建项目
15+
### 创建项目
1616
- `npm create` :用于执行项目模板的命令,它会创建一个新的项目,并从给定的模板中初始化。
1717
- `vite@latest` :vite 是创建 Vue 3 项目的工具,`@latest` 是指定使用最新版的 Vite,确保你创建的项目是基于最新版本的 Vite。如果没有 `@latest``npm` 会尝试使用当前安装的版本。
1818
- `<project-name>`:新创建项目的文件夹名称。命令会创建一个文件夹,并将模板代码放入其中。例如,运行 `npm create vite@latest my-vue-app --template vue` 会在当前目录下创建一个名为 `my-vue-app` 的文件夹,并将 Vue 项目的模板文件放入其中。
1919
- `--template vue``--template vue` 指定了要使用的模板类型。Vite 支持多种模板,`vue` 是专门为 Vue 3 提供的模板。还有其他模板,如 `vanilla``react``svelte` 等。
2020

21-
## npm create
21+
### npm create
2222

2323
```shell
24-
# 最新稳定版
24+
## 最新稳定版
2525
$ npm init vue@latest
2626
```
2727
这一指令将会安装并执行 create-vue,它是 Vue 官方的项目脚手架工具。
@@ -33,7 +33,7 @@ Ok to proceed? (y) y
3333

3434
Vue.js - The Progressive JavaScript Framework
3535

36-
# 这里需要进行一些配置,项目名输入 vue3-test,其他默认回车即可
36+
## 这里需要进行一些配置,项目名输入 vue3-test,其他默认回车即可
3737
-> Project name: … vue3-test
3838
-> Add TypeScript? … No / Yes
3939
-> Add JSX Support? … No / Yes
@@ -53,14 +53,14 @@ Done. Now run:
5353

5454
```
5555

56-
## vite
56+
### vite
5757
`vite`创建vue项目时:
5858
```shell
5959
npm create vite@latest scan-pro -- --template vue
6060
Need to install the following packages:
6161
Need to install the following packages:
6262
63-
# 这里按照提示选择javascript或typescript
63+
## 这里按照提示选择javascript或typescript
6464
√ Select a variant: » JavaScript
6565

6666
Scaffolding project in E:\scan-pro...
@@ -71,7 +71,7 @@ Done. Now run:
7171
npm install
7272
npm run dev
7373
```
74-
## vue ui
74+
### vue ui
7575
> 下面是抄的菜鸟教程
7676
7777
除了使用 vue create 命令创建项目,我们还可以使用可视化创建工具来创建项目。
@@ -105,7 +105,7 @@ $ vue ui
105105

106106
![](https://www.runoob.com/wp-content/uploads/2021/12/4AE552A2-2AE4-4B23-AECA-90CE7D29C047-scaled.jpeg)
107107

108-
## 目录结构
108+
### 目录结构
109109
**命令行工具 vue-cli(runoob-vue3-test):**
110110

111111
![](https://www.runoob.com/wp-content/uploads/2021/02/7C26D06C-4B1B-4E80-BBE1-E407C3E945B3.jpg)
@@ -142,15 +142,15 @@ my-vue-app/
142142
```
143143

144144

145-
# 2. 基础语法
145+
## 2. 基础语法
146146
这里直接参考官方文档吧
147147
> [简介 | Vue.js](https://cn.vuejs.org/guide/introduction.html)
148148
149-
## 响应式原理
149+
### 响应式原理
150150
Vue的响应式系统是其核心特性之一,它使得数据变更能够自动更新到UI上。在Vue3中,这个系统基于JavaScript的 `Proxy` 对象重写,提供了更好的性能和更多的功能。
151151

152152
![](https://developer.qcloudimg.com/http-save/yehe-10668329/a63f204ac2a1a70c5f82bc4d185cbda2.png)
153-
### ref 和 reactive
153+
#### ref 和 reactive
154154

155155
Vue 3提供了两个主要的函数来创建响应式数据:`ref``reactive`
156156

@@ -174,14 +174,14 @@ console.log(state.count) // 0
174174
state.count++ // 1
175175
```
176176

177-
### 实现机制区别
177+
#### 实现机制区别
178178

179179
`ref``reactive` 的主要区别在于,`ref` 是为了让基本类型(如数字和字符串)可以变为响应式,而 `reactive` 是为了让对象变为响应式。
180180

181181
`ref` 创建的响应式数据需要通过 `.value` 属性进行访问和修改,而 `reactive` 创建的响应式对象可以直接访问和修改其属性。因此,`ref` 更适合于处理基本类型,而 `reactive` 更适合于处理对象。
182182

183183

184-
# Vue3 专属
184+
## Vue3 专属
185185
Vue3 中的应用是通过使用 createApp 函数来创建的,语法格式如下:
186186
```js
187187
const app = Vue.createApp({ /* 根组件选项 */ })
@@ -204,7 +204,7 @@ createApp 的参数是根组件(HelloVueApp),在挂载应用时,该组
204204
一个应用需要被挂载到一个 DOM 元素中,以上代码使用 `mount('#hello-vue')` 将 Vue 应用 HelloVueApp 挂载到 `<div id="hello-vue"></div>` 中。
205205

206206

207-
## Vite + Vue3 实例
207+
### Vite + Vue3 实例
208208

209209
- `Vite` 项目中,`index.html` 是项目的入口文件,在项目最外层。
210210
- 加载`index.html`后,`Vite` 解析 `<script type="module" src="xxx">` 指向的`JavaScript`
@@ -329,28 +329,28 @@ createApp(HelloWorldApp).mount('#hello-world');
329329

330330

331331

332-
## OptionsAPI 与 CompositionAPI
332+
### OptionsAPI 与 CompositionAPI
333333
`Vue3`向下兼容`Vue2`语法,且`Vue3`中的模板中可以没有根标签。
334334

335335
- `Vue2``API`设计是`Options`(配置)风格的。
336336
- `Vue3``API`设计是`Composition`(组合)风格的。
337337

338-
### Options API 的弊端
338+
#### Options API 的弊端
339339

340340
`Options`类型的 `API`,数据、方法、计算属性等,是分散在:`data``methods``computed`中的,若想新增或者修改一个需求,就需要分别修改:`data``methods``computed`,不便于维护和复用。
341341

342342
![](img/Vue/87b375ebd86276e455b4e46d55ffdf96.gif)
343343

344344
![](img/Vue/d6ff67044823121732eecf2d78604f2a.gif)
345345

346-
### Composition API 的优势
346+
#### Composition API 的优势
347347
它会根据逻辑功能来进行组织,把同一个功能的不同代码都放在一起,或者把它们单独拿出来放在一个函数中,所以 **`Composition API`** 又被称为基于**函数组合的API**:可以用函数的方式,更加优雅的组织代码,让相关功能的代码更加有序的组织在一起。
348348
![](img/Vue/32fe460dabe5902a431ab6a258b84acb.gif)
349349

350350
![](img/Vue/c5a517e722259b4ab9e37f35ef572c1e.gif)
351351

352352

353-
### setup 函数
353+
#### setup 函数
354354

355355
**setup 函数**是 Vue3 中新增的函数,它是我们在编写组件时,使用 `Composition API` 的入口。
356356
同时它也是 Vue3 中新增的一个生命周期函数,会在 `beforeCreate` 之前调用。因为**此时组件的 `data` 和 `methods` 还没有初始化,因此在 setup 中是不能使用 `this` 的**。所以 Vue 为了避免我们错误的使用,它直接将 setup 函数中的 `this` 修改成了`undefined`。并且,我们只能同步使用setup函数,不能用async将其设为异步。
@@ -504,7 +504,7 @@ export default {
504504
在 Vue 2.x 中,事件监听器使用 `v-on:` 或简写为 `@`,与 Vue 3 相同。但是,Vue 2.x 使用 `this.$emit` 来触发事件,而 Vue 3 中可以直接使用 `emit` 函数。
505505

506506

507-
### 生命周期
507+
#### 生命周期
508508
**setup 函数**是 Vue3 中新增的一个生命周期函数
509509

510510
- setup 函数会在 `beforeCreate` 之前调用,因为**此时组件的 `data` 和 `methods` 还没有初始化,因此在 setup 中是不能使用 `this` 的**
@@ -560,7 +560,7 @@ export default {
560560
</script>
561561
```
562562

563-
### 返回值
563+
#### 返回值
564564
`setup` 函数中返回一个对象,可以在模板中直接访问该对象中的属性和方法。
565565

566566
```vue
@@ -586,7 +586,7 @@ export default {
586586
</template>
587587
```
588588

589-
### ref 与 reactive
589+
#### ref 与 reactive
590590
创建一个**响应式数据**
591591

592592
- **ref:任意类型(建议基本类型)数据的响应式引用**(设置、获取值时需要加`.value`)。
@@ -642,7 +642,7 @@ export default {
642642
</script>
643643
```
644644

645-
### toRef 与 toRefs
645+
#### toRef 与 toRefs
646646
在 Vue 3 中,`toRef` 和 `toRefs` 都是用于将响应式对象的属性转换为响应式引用的工具,但它们有不同的用途和使用场景。
647647

648648
`toRef` 用于将响应式对象的单个属性转换为一个响应式引用。它可以让你在不解构对象的情况下,单独引用对象的某个属性。
@@ -680,7 +680,7 @@ console.log(state.message); // 输出: 'Hi'
680680
</script>
681681
```
682682

683-
### readonly 只读属性
683+
#### readonly 只读属性
684684

685685
**表示响应式对象不可修改**
686686
```vue
@@ -706,7 +706,7 @@ export default {
706706
}
707707
</script>
708708
```
709-
### method方法
709+
#### method方法
710710
声明method方法的语法如下:
711711
```vue
712712
<script setup>
@@ -731,7 +731,7 @@ export default {
731731
</template>
732732
```
733733

734-
## computed 计算属性
734+
### computed 计算属性
735735

736736
```vue
737737
<script>
@@ -759,7 +759,7 @@ export default {
759759
</template>
760760
```
761761

762-
### watch 与 watchEffect 监听属性
762+
#### watch 与 watchEffect 监听属性
763763
在Vue 3中,`watch` 和 `watchEffect` 是用于监听响应式数据变化的两个API。
764764

765765
`watch` 用于监听一个或多个响应式数据源的变化,并在变化时执行回调函数。它类似于Vue 2中的`watch`选项。
@@ -802,7 +802,7 @@ watchEffect(() => {
802802
- `watch` 需要显式指定要监听的响应式数据,可以更精细地控制回调函数的执行。
803803
- `watchEffect` 自动追踪回调函数中访问的所有响应式数据,更适合简单的场景,但可能会导致不必要的重新计算。
804804

805-
## 获取DOM节点
805+
### 获取DOM节点
806806
在Vue 3中,可以使用 `ref` 和 `onMounted` 钩子来获取DOM节点。以下是一个示例,展示了如何在组件中获取DOM节点。
807807
```vue
808808
<template>
@@ -834,7 +834,7 @@ export default {
834834
2. 在模板中使用 `ref` 属性绑定到一个DOM元素。
835835
3. 在 `onMounted` 钩子中访问 `myDiv.value`,这时DOM节点已经挂载,可以进行操作。
836836

837-
## provide 与 inject
837+
### provide 与 inject
838838
在Vue 3中,`provide` 和 `inject` 是用于在组件树中共享数据的API。它们允许祖先组件提供数据,并让后代组件注入这些数据,而不需要通过props逐层传递。
839839

840840
`provide` 用于在祖先组件中提供数据。它通常在 `setup` 函数中使用。
@@ -908,7 +908,7 @@ export default {
908908
</script>
909909
```
910910

911-
## Teleport
911+
### Teleport
912912

913913
在Vue 3中,`Teleport` 是一个新的内置组件,用于将其子组件渲染到指定的DOM节点,而不是其父组件的DOM树中。这对于模态框、弹出菜单等需要在特定位置渲染的组件非常有用。
914914
`Teleport` 组件使用 `to` 属性指定目标容器的选择器。
@@ -970,7 +970,7 @@ export default {
970970
- 使用 `to` 属性指定目标容器的选择器。
971971
- 适用于模态框、弹出菜单等需要在特定位置渲染的组件。
972972

973-
## vue指令
973+
### vue指令
974974
> 指令主要包括渲染指令(v-if v-show v-html v-for v-text )、属性指令(v-bind)、事件指令(v-on)、表单指令(v-model)。
975975
976976
以下是渲染指令demo 

0 commit comments

Comments
 (0)