响应式数据是vue的一大亮点,下面我们来聊聊如何声明响应式数据
直接声明变量
- 直接声明变量并不能使之拥有响应性
- 示例:
<script setup>
let num = 0;
const clickFun = () => {
console.log("num:", ++num);
}
</script>
<template>
<div style="display:flex;flex-direction: column;">
<span>num : {{num}}</span>
<button @click="clickFun()">修改</button>
</div>
</template>
- 运行结果:


- 多次点击按钮后,控制台打印的num值虽然有增加,但在html页面显示的num值却不变
ref(基本数据类型)
- 使用ref(基本数据类型)即可把一个基本数据类型的值转化为响应式并返回
- 基本数据类型:
- String
- Number
- BigInt
- Boolean
- Symbol
- Undefined
- Null
- 示例:
<script setup>
import { ref } from 'vue';
let num = 0;
let refNum = ref(0);
console.log("refNum:", refNum);
console.log("refNum.value", refNum.value);
const clickFun = () => {
console.log("num:", ++num);
console.log("refNum.value:" , ++refNum.value);
}
</script>
<template>
<div style="display:flex;flex-direction: column;">
<span>num : {{num}}</span>
<span>refNum : {{refNum}}</span>
<button @click="clickFun()">修改</button>
</div>
</template>
- 运行结果:


- 注意ref()返回的是一个refImpl的对象,它的value属性才是我们要的数据,所以在js中操作时需要.value,但在<template>中会自动展开为内部值
- 可以看到,通过ref()获取的变量是响应式的,会随着变量值的改变而体现在html页面中
reactive(对象)
- reactive()需要我们传入一个对象
- 示例:
<script setup>
import { ref,reactive } from 'vue';
let num = 0;
let refNum = ref(0);
let rea = reactive({
num:0
});
console.log("refNum:", refNum);
console.log("refNum.value", refNum.value);
console.log("rea", rea);
const clickFun = () => {
console.log("num:", ++num);
console.log("refNum.value:" , ++refNum.value);
console.log("rea.num:", ++rea.num);
}
</script>
<template>
<div style="display:flex;flex-direction: column;">
<span>num : {{num}}</span>
<span>refNum : {{refNum}}</span>
<span>rea.num : {{rea.num}}</span>
<button @click="clickFun()">修改</button>
</div>
</template>
- 运行结果:


- reactive()也可以让变量得到响应性
- 但它需要传入对象,而ref()需要传入基本数据类型
- 而且它返回的是一个proxy对象,但我们在js操作和在<template>绑定时,都可以直接访问和操作其内部变量。
darknet markets 2023 darknet market lists darknet markets 2023
dapoxetine 30 mg tablet price in india
darknet site the dark internet darknet drug links
buy atarax online uk
cost of augmentin tablets
order amoxicillin
buy hydroxychloroquine uk
gabapentin 800
tor darknet dark market link darknet market lists
tor markets dark markets 2023 dark web search engines
accutane europe
tor dark web tor markets how to access dark web
dark web search engine tor markets links dark web sites
diflucan usa
propranolol 20mg price
darknet drugs darknet market dark web search engine
dark market link tor markets tor markets 2023
darkmarkets darknet drug store darknet market
farmaci senza ricetta elenco: farmacia online – farmacia online senza ricetta
the dark internet dark web sites dark web market list
generic augmentin
tor markets links onion market bitcoin dark web
toradol 30 mg
viagra generico prezzo piГ№ basso: viagra prezzo farmacia – pillole per erezione in farmacia senza ricetta
onion market darkmarket url dark web search engines
tor marketplace darkweb marketplace dark web search engine
deep dark web deep web markets drug markets onion
farmacie online sicure: kamagra – farmacia online senza ricetta
darkmarket darknet drug links darknet drug market
darknet drug market deep web drug store tor marketplace
tor market darkmarket dark web drug marketplace
brand name lexapro canada
comprare farmaci online all’estero: farmacia online miglior prezzo – farmacia online migliore