# Vue-QuickStart
**Repository Path**: rainyheights/vue-quick-start
## Basic Information
- **Project Name**: Vue-QuickStart
- **Description**: vue学习快速上手,基于Vue2的。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-07-26
- **Last Updated**: 2024-01-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Vue笔记
渐进式框架:生态完善,提供路由,提供数据管理,ui组件库,vant,elementui
形式规模,可被逐步集成,简介使用,单个页面到整个项目。
单页面应用(SPA)
服务端渲染,开发桌面端,移动端
>版本:vue2+vue3
vue:官方构建是 vite构建的
>npm init vue@latest
>项目名称不能含有大写 字母
### P5目录结构 :
node_modules:运行依赖文件
public:资源文件,图片之类的
src:源码文件夹,存放代码
index.html:入口页面,必须的文件,不需要修改
package.json:信息描述文件,项目版本信息和 依赖信息,,相当于pom.xml
vue.config.js:配置文件 ,相当于application.yml
### 模板语法
基于html,声明式将组件实例绑定到dom上
> 模板语法
```txt
模板语法
{{msg}}
{{hello}}
```
```txt
模板语法
{{msg}}
{{hello}}
{{number+10}}
{{!boolean?'yes':'no'}}
{{message.split('').reverse().join('')}}
```
### 属性绑定:
> 使用v-bind,文本值通过双花括号{{}},若绑定的值为空,将会被移除
>
> 添加html:v-html
>
> 简写:v-bind==>:
动态绑定属性内容。
### 条件渲染
> v-if
>
> v-else
>
> v-show
>
> 
### 列表渲染
> v-for
> 使用item in items语法
> 
### 通过key管理状态
```txt
{{item.title}}
```
### 内连事件处理器,执行js
v-on 或者@
```txt
内连事件处理器
{{count}}
函数添加
```

### 获取event对象
getEvent(msg,$e)
### 事件修饰符
v-on ->.stop,.prevent,.up等等

### 数组变化

### 计算属性
> 计算属性和函数效果相同,然而计算属性会缓存,方法不会
### class绑定
通过逻辑来操作css样式,用v-bind来绑定属性

### style绑定
```txt
你好
你好
```
### 侦听器

函数名必须和监听的数据对象保持一致
### 表单数据绑定
v-model,用户输入同时获取输入的信息
### 组件式开发
>组件之间可以相互调用,嵌套开发
> 
vue实现了自己的组件模型
## 组件数据传递
### 组件的注册方式
1:引入,注入,使用(推荐)
2:全局引入,在main.js里面引人(不推荐😺)
### 组件传递数据props
组件之间不是完全独立的,是可以相互传递数据的
通过子父级间传递,只能父传子
### 组件传递效验
>
> 
> 儿子事件触发父亲事件,关键字emit
>
### v-model绑定组件事件
> 
### 遗传Attribute(少用)

### 插槽slot

```vue
{{props.demo}}
```
具名插槽:v-slot:指定名称来进行插槽的指定渲染,解决重复渲染的问题,v-slot可以简写为 #
> 简写总结:
>
> v-bind=> :
>
> v-on=> @
>
> v-slot+> #
假设插槽需要同时渲染父组件和子组件,解决办法则是子传父,然后父传子,最后子插槽 渲染

## 组件的生命周期(从创建到销毁)
数据侦听->编译模板->挂载实例
关键节点具有生命周期的钩子函数

> 创建期:beforeCreated created
>
> 挂载期:beforeMount mounted
>
> 更新期:beforeUpdate updated
>
> 销毁期:beforeUnmount unmounted
>
> 生命周期函数都是自动执行的
### 应用场景
使用$ref来 操作dom
```txt
组件的生命周期的应用
{{i.title}}
```
### 组件的相互切换


### 异步组件
>切换时才会去加载,不要一次性加载,优化项目性能
>
>Vue是一款流行的JavaScript框架,用于构建用户界面。它具有许多常用的特性,以下是Vue的一些常用特性,详细介绍如下:
1. 声明式渲染:
Vue使用简洁的模板语法,可以将数据和DOM进行绑定,实现声明式的渲染。通过将数据和模板进行绑定,Vue可以自动追踪数据的变化,并在数据发生变化时更新DOM。
2. 组件化开发:
Vue采用组件化开发的方式,将用户界面拆分成多个独立的组件。每个组件都有自己的模板、逻辑和样式,可以被复用和组合,从而实现更高效的开发。
3. 双向数据绑定:
Vue通过v-model指令实现双向数据绑定。它可以将表单元素和数据模型进行双向绑定,当用户修改表单元素的值时,数据模型会自动更新,反之亦然。
4. 条件渲染:
Vue提供了v-if和v-show指令,用于根据条件来渲染DOM元素。v-if根据条件动态创建或销毁DOM元素,v-show只是通过CSS的display属性来控制元素的显示与隐藏。
5. 列表渲染:
通过v-for指令,Vue可以迭代数组或对象,并根据每个元素生成对应的DOM元素。这使得在用户界面中展示列表数据变得非常简单。
6. 计算属性:
Vue提供了计算属性的概念,可以根据已有的数据动态计算出新的属性。计算属性可以缓存计算结果,在依赖的数据没有发生变化时直接使用缓存的结果,避免重复计算。
7. 绑定样式和样式类:
Vue可以通过v-bind指令绑定内联样式和样式类。可以根据不同的数据状态动态改变元素的样式,提供更好的用户交互和视觉效果。
8. 生命周期钩子:
Vue提供了一系列的生命周期钩子函数,允许开发者在组件的不同阶段执行自定义的逻辑。例如,在组件创建后执行初始化操作,在组件销毁前进行资源清理等。
9. 自定义指令:
Vue允许开发者自定义指令,用于扩展Vue的功能。可以通过自定义指令来操作DOM,绑定事件,实现复杂的交互效果。
10. 插件系统:
Vue提供了插件系统,允许第三方开发者开发和共享Vue的插件。可以通过插件来增加全局功能、自定义指令和过滤器等。
11. 状态管理:
Vue提供了Vuex库,用于管理应用程序的状态。Vuex使用单一状态树的概念,使得状态的管理和更新更加简单和可预测。
12. 路由管理:
Vue提供了Vue Router库,用于管理应用程序的路由。可以通过Vue Router实现多页面之间的跳转、参数传递和路由守卫等功能。
13. 异步组件:
Vue可以通过异步组件来延迟加载组件,提高应用程序的加载速度。可以根据需要动态加载组件,减少首次加载时的资源消耗。
14. 单文件组件:
Vue支持使用单文件组件的方式组织代码。单文件组件将模板、样式和逻辑放在同一个文件中,使得代码的组织更加清晰和可维护。
15. TypeScript支持:
Vue提供了对TypeScript的支持,可以使用TypeScript来编写Vue应用程序。TypeScript提供了类型检查和更好的编码提示,使得开发更加可靠和高效。
总结起来,Vue具有声明式渲染、组件化开发、双向数据绑定、条件渲染、列表渲染、计算属性、绑定样式和样式类、生命周期钩子、自定义指令、插件系统、状态管理、路由管理、异步组件、单文件组件和TypeScript支持等常用特性。这些特性使得Vue成为一个强大且灵活的JavaScript框架,适用于构建现代化的Web应用程序。
>