无标题
vue3
采用组合式API
底层构建工具使用vite 响应快 create-vue成为新的脚手架工具
状态管理工具使用Pinia
pnpm create vue 创建项目
优势
- 更容易维护 更好的TS支持
- 更快的速度
- 更小的体积 按需引入
- 更优的数据响应 Proxy
目录结构
代码编写
-
js 文件写在最上面 在script 中加上setup 直接编写组合式API,setup的执行时机在beforeCreate生命周期函数之前
-
没有了this选项,获取不到this
-
reactive和ref函数
- 都是用函数调用的方式生成响应式数据
- reactive不能处理简单类型的数据
- ref定义的数据必须通过.vaule访问和修改
- re函数内部基于reactive函数实现
-
pnpm create vue 创建项目
-
在setup函数中写的数据和方法需要在末尾以对象的方式return,才能给模版使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15<script>
export default {
setup(){
const message = 'this is message'
const logMessage = ()=>{
console.log(message)
}
// 必须return才可以
return {
message,
logMessage
}
}
}
</script> -
script标签添加 setup标记,不需要再写导出语句,默认会添加导出语句
1
2
3
4
5
6<script setup>
const message = 'this is message'
const logMessage = ()=>{
console.log(message)
}
</script>
计算属性
1 | <script setup> |
监听
侦听一个或者多个数据的变化,数据变化时执行回调函数,俩个额外参数 immediate控制立刻执行,deep开启深度侦听
1 | <script setup> |
immediate 在侦听器创建时立即出发回调,响应式数据变化之后继续执行回调
1 | <script setup> |
通过watch监听的ref对象默认是浅层侦听的,直接修改嵌套的对象属性不会触发回调执行,需要开启deep
生命周期函数
选项式对比组合式
基本使用
- 导入生命周期函数
- 执行生命周期函数,传入回调
1 | <scirpt setup> |
生命周期函数执行多次的时候,会按照顺序依次执行,可以定义多个同一时期的生命周期函数
父子通信
- 父组件中给子组件绑定属性
- 子组件内部通过props选项接收数据
- 父组件中给子组件标签通过@绑定事件
- 子组件内部通过 emit 方法触发事件
模板引用
通过 ref标识 获取真实的 dom对象或者组件实例对象
- 调用ref函数生成一个ref对象
- 通过ref标识绑定ref对象到标签

defineExpose
默认情况下在