在 Vue3 <script setup> + 组合式 API 之 怎用使用响应式变量
什么是响应式?
Vue3 的响应式是:当更改响应式对象的值改变时,视图会随即自动更新。
ref()
ref()
返回一个响应式对象,可以用 value
属性来访问或更改对象的值。ref
对象在模板中会自动解包,用变量名不需要加 .value
就能访问。
1 | <script setup> |
在 Vue3 <script setup> + 组合式 API 之 怎用使用响应式变量
Vue3 的响应式是:当更改响应式对象的值改变时,视图会随即自动更新。
ref()
返回一个响应式对象,可以用 value
属性来访问或更改对象的值。ref
对象在模板中会自动解包,用变量名不需要加 .value
就能访问。
1 | <script setup> |
Vue3(单文件组件 + <script setup> + 组合式 API)组件实例常用内置属性、方法、函数
本文总结 Vue3
组件实例在模板中暴露的常用公共属性和方法,以及对应的 组合式 API
函数。
$data/$props/$options 属性在 组合式 API 下几乎用不到。
$el 不建议用。
$slots 表示父组件所传入插槽的一个对象,很少用,有兴趣可查看官方文档。
模板中用 $parent
获取父组件实例,可访问父组件用 defineExpose()
显式暴露的绑定。
组合式 API
先在 setup
中用 getCurrentInstance()
获取到当前组件实例,再用 parent
属性访问父组件。getCurrentInstance().parent
除了能访问父组 defineExpose()
暴漏的绑定外,能访问父组件更多的属性和方法,多用于组件的开发,在应用开发中一般不建议用。
1 | import { getCurrentInstance } from 'vue'; |
Vue3 组件间相互访问(单文件 + <script setup> + 组合式 API 举例)
在 <script setup>
中用 defineProps()
声明组件的属性,在父组件模板中引用子组件时,就可以给通过属性给子组件传参数(可以是值、变量、函数、对象等)。
defineProps
是编译器宏,Vue3 编译器宏不需要导入,并且只能在<script setup>
中使用。
ex: 子组件声明、调用属性
1 | <!-- HelloWorld.vue 子组件--> |
ex: 父组件使用属性
1 | <!-- Demo.vue 父组件 --> |
在 Vue3 单文件组件中使用 <script setup> + 组合式 API
<script setup>
是在单文件组件 (SFC) 中使用组合式 API 的编译时语法糖。当同时使用 SFC 与组合式 API 时该语法是默认推荐。
在 <script>
标签上添加 setup 属性启用该语法,里面的代码会背编译成组件 setup()
函数的内容,每次组件实例被创建时执行。
1 | <script setup> |
如果要使用 TypeScript,加上 lang="ts"
属性即可。
1 | <script lang="ts" setup> |
当使用 <script setup>
的时候,任何在 <script setup>
声明的顶层的绑定 (包括变量,函数声明,以及 import 导入的内容) 都能在模板中直接使用。
响应式即变量数据变化的时候,视图跟着变化。
响应式状态需要明确使用 响应式 API 来创建.
常用 API: