1. vue 3中声明常用类型的变量
1.1 这种是普通的非响应式变量
<template>
iStr: {{iStr}} <br/><br/>
iNum: {{iNum}} <br/><br/>
iArray length: {{iArray.length}} <br/><br/>
iObj.a: {{iObj.a}} <br/><br/>
</template>
<script setup>
let iStr='iStr';
let iNum=10;
let iObj={a:10};
let iArray=[];
console.log("3秒后开始改变值");
setTimeout(() => {
iStr="";
iNum=100;
console.log("当前iNum的值",iNum);
console.log("当前iStr的值",iStr);
}, 3*1000);
</script>
这种方法声名的变量不是响应式的,如图
1.2 响应式声名变量
<template>
iStr: {{iStr}} <br/><br/>
iNum: {{iNum}} <br/><br/>
iArray length: {{iArray.length}} <br/><br/>
iObj.a: {{iObj.a}} <br/><br/>
</template>
<script setup>
import {ref} from 'vue';
const iStr=ref('iStr');
const iNum=ref(10);
const iObj=ref({a:10});
const iArray=ref([]);
console.log("3秒后开始改变值");
setTimeout(() => {
iStr.value="====";
iNum.value=100;
iObj.value.a=999;
iArray.value.push(123);
iArray.value.push(321);
console.log("当前iNum的值",iNum);
console.log("当前iStr的值",iStr);
}, 3*1000);
</script>
效果图如下
2. 其他常用操作映射关系
序号 | vue2操作 | <script setup></script> 中操作 | |
1 | this.$refs.componentA | const componentA = ref() | 组件的ref='ComponentA' 直接声名同名的变量即可 |
2 | this.$emit('事件名') | import {defineEmits}from 'vue' const emits = defineEmits(["事件1", "事件2"]); emits("事件1"); emits("事件2"); | 发射事件 |
3 | this.$router.push({path:'/login'}) | import { useRouter } from 'vue-router' let router = useRouter(); router.push({path:'/login'}); | 获取router切换页面 |
4 | 定义函数 methods:{ function A{ } } | setup中直接定义 方法1 :const a = function(){ } 方法2 :const a = () =>{ } 方法3: function a(){ } | 声名函数 |
5 | 直接在函数中用this获取对象即可 | import {toRaw} from 'vue' const form = ref({}); let info = toRaw(form); | 使用对象的原始值 |
6 | export default{ name:'componentA', onMounted(){ }, onUpdate(){ } } | onMounted(() =>{ //函数体 }) onUpdate(() =>{ //函数体 }) | 钩子函数 |
7 | props:["propA",”propB","propC"] | import {defineProps} from 'vue'; const props = defineProps({
child: { }) | 声名组件的prop |