vue(九)vue3新特性
-
性能比Vue2强
-
可以将无用模块去掉,仅打包需要的
-
组合API
-
碎片(fragment),portal传送门(teleport),悬念(suspense)
-
更好的TS支持
-
暴露了自定义渲染API
setup()
-
在setup函数中声明对象,代替data()。ref声明简单对象,reactive
<template>
<h3>{{ s1 }}</h3>
<h3>{{ person.id }}</h3>
</template>
<script>
import {ref,reactive} from "vue"
export default {
name: "App",
setup(){
const s1=ref("s1111")
const person=reactive({
id:1,
name:"perter"
})
return{
s1,person
}
}
}
export default { name: "App", setup(){ function clickHandler() { console.log(111); } return{ clickHandler } } }
props代替vue2的props,具有同样的组件交互功能
setup(props,ctx){
}
-
-
渲染时:beforeMount、mounted(网络请求一般放在mounted中),调用改为 OnBeforeMount, OnMounted
-
更新时:beforeUpdate、updated,调用改为 OnBeforeUpdate, OnUpdated
-
卸载时:beforeUnmount(卸载之前,把消耗性能的处理都删掉)、unmounted,调用改为 OnBeforeUnmount, OnUnmounted
-
setup(){ OnMounted( ()=>{console.log("...")} ) }
provide()和 inject() 可以实现嵌套组件之间的数据传递(上级向下级传递),不限制层级(跳过中间子组件)
父组件使用provide()向下传递数据,子组件使用 inject()获取上层传递过来的数据
// 父组件传递 setup(){ provide("msg","this is msg1") } // 子组件获取 setup(){ const msg=inject("msg") return{ msg } }

浙公网安备 33010602011771号