下述介绍仅针对组合式API~
1. reactive
reactive是一个函数,接收一个对象,把对象数据转化为响应式对象并返回。(需要从vue中导入reactive函数)
<template>
<div>{
{
state.name }}</div>
<div>{
{
state.age }}</div>
<button @click="state.name = '小华'">修改姓名</button>
</template>
<script>
import {
reactive } from 'vue'
export default {
setup () {
const state = reactive({
name: '小明',
age: 18
})
return {
state
}
}
}
</script>
我们也可以在同一个作用域下定义一个更新 state 的函数,并作为一个方法与 state 一起暴露出去:
<button @click="increment">
{
{
state.count }}
</button>
<script>
import {
reactive } from 'vue'
export default {
setup() {
const state = reactive({
count: 0 })
function increment() {
state.count++
}
// 不要忘记同时暴露 increment 函数
return {
state,
increment
}
}
}
</script>
在 setup() 函数中手动暴露大量的状态和方法是繁琐的。我们可以通过使用构建工具来简化该操作。当使用单文件组件(SFC)时,我们可以使用 < script setup > 来大幅度地简化代码。
<templ