响应式数据是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>绑定时,都可以直接访问和操作其内部变量。
blackweb official website deep web links
darknet sites darkmarket list
dark web sites links dark web websites
tizanidine 40 mg
dark websites dark web links
dark market 2023 deep web drug url
how to access dark web deep web markets
bitcoin dark web dark markets
dark market 2023 dark market 2023
albendazole 200 mg coupon
dark market onion tor markets
dark web sites dark web site
dark net dark internet
dark web search engines deep web drug markets
dark web markets deep web drug links
dark markets 2023 dark web drug marketplace
tor darknet deep web sites
darknet seiten deep web markets
darknet market links darknet drug market
darknet drug store dark web sites links
darknet marketplace dark market
cheapest zovirax cream
deep web sites darkmarket 2023
darkmarket 2023 dark market onion
darkmarket list darknet site
darknet markets tor market links
darknet drug links darknet drugs
dark market list dark web links
tor dark web how to get on dark web
bitcoin dark web dark web websites
valtrex no prescription
deep web drug markets dark websites
dark web websites bitcoin dark web
dark market url dark web markets
tor marketplace darkmarket link
cheap propecia uk
deep web markets dark web access
dark web markets tor darknet
darknet seiten free dark web
onion market deep web drug url
dark web drug marketplace darknet sites
tor marketplace tor markets 2023
tor marketplace bitcoin dark web
darkmarket tor markets links
tor marketplace free dark web
dark web market links darknet marketplace
dark net dark web site
deep web search darknet drugs
dark web search engines darknet drug market
dark web market list deep web drug markets