响应式数据是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>绑定时,都可以直接访问和操作其内部变量。
advair drug
dark market list darknet marketplace
order xenical
darknet markets dark market onion
dark web market dark web sites
deep web sites darknet marketplace
dark web websites darknet search engine
blackweb official website tor market
darknet search engine dark market onion
deep web drug store tor dark web
dark websites tor market
best darknet markets drug markets onion
darknet seiten darkmarket list
baclofen otc canada
dark web link drug markets dark web
deep web drug markets darknet drug links
advair prices in mexico
darkweb marketplace darknet drug store
darknet drug links darknet drug market
deep web search darknet drug market
dark market list darkmarkets
dark website darknet market links
darknet links best darknet markets
dark web websites dark market url
deep web markets darknet seiten
dark web sites links darknet sites
darkmarkets tor markets
dark markets 2023 darknet marketplace
dark web search engine dark market
dark market dark market onion
dark net dark markets
darknet markets tor market links
dark web websites blackweb official website
tor dark web how to access dark web
bitcoin dark web deep web drug url
elimite 5
blackweb official website deep web markets
tor market darkmarket
dark market 2023 darknet market
tor markets 2023 dark web market
deep web links tor marketplace
deep dark web darkmarket 2023
dark web search engines darkmarket url
dark internet darkmarket 2023
tor market links deep dark web
deep web sites dark web access
zithromax rx
buying metformin in mexico
blackweb dark web drug marketplace
levaquin 500mg