vue 3.0定义变量 以及方法
1.setup函数是用来定义方法与变量的,我们可以用ref或者reactive来定义基本数据类型或者复杂数据类型
2 在setup中直接定义方法,且通过ref定义的变量获取使用都需要.value
3.定义的变量,以及方法名称必须return出去才能使用
setup(){
const count = ref(0);
const objFn = reactive({});
const add=()=>{
count.value++
}
return {
count,
objFn,
add
};
}
vue3.0 生命周期简介
生命周期使用前需要在vue中引入在使用
import {onMounted,onMounted,onMounted,onUpdated,onBeforeUnmount,onUnmounted} from "vue"
setup() {
console.log(" ===> 相当于 vue2.x 中 beforeCreated, created")
onBeforeMount() {
console.log("===> 相当于 vue2.x 中 beforeMount")
},
onMounted() {
console.log("===> 相当于 vue2.x 中 mounted")
},
onMounted() {
console.log("===> 相当于 vue2.x 中 beforeUpdate")
},
onUpdated() {
console.log("===> 相当于 vue2.x 中 updated")
},
onBeforeUnmount() {
console.log("===> 相当于 vue2.x 中 beforeDestroy")
},
onUnmounted() {
console.log("===> 相当于 vue2.x 中 destroyed")
},
onErrorCaptured() {
console.log("===> 相当于 vue2.x 中 errorCaptured")
}
return {}
},
vue3.0 组件传值
1. 使用props传值
<template>
<div class="home"><HelloWorld :msg="count" /></div>
</template>
<script>
import { ref } from "vue";
import HelloWorld from "@/components/HelloWorld.vue";
export default {
name: "father",
setup() {
let count = ref(0);
return {
count,
};
},
components: {
HelloWorld,
},
};
</script>
<template>
<div class="hello">{{ count }}</div>
</template>
<script>
import { ref } from "@vue/reactivity";
export default {
name: "son",
props: {
msg: {
type: Number,
},
},
setup(props) {
let count = ref(props.msg);
return {
count,
};
},
};
</script>
2. 使用provide与inject传值
<template>
<div>
<HelloWorld />
</div>
</template>
<script>
import { provide} from "@vue/composition-api"; // 父组件引入 provide
import HelloWorld from "./components/HelloWorld"; // 引入子组件
export default {
name: "app",
components: {
HelloWorld
},
setup() {
// provide('数据名称', 要传递的数据)
provide("age,"18")
}
};
</script>
<template>
<div>
<h3>{{ customVal }}</h3>
</div>
</template>
<script>
import { inject } from "@vue/composition-api";
export default {
setup() {
const customVal = inject("customVal");
return {
customVal
};
}
};
</script>