侦听器(watch)
这个主要是用来侦听新老数据的变化的,可以用一个简单的例子来进行展示
let message = ref(3);
watch([message],(newValue,oldValue)=>{
console.log(newValue,oldValue);
},
{
deep:true, //这个是 要不是开启深度监听 默认是不开启的
immediate:false, //这个是这个侦听器要不要默认执行一次,这个属性的值是false
flush:"pre" //这里一共有三个子属性 pre 组件更新以后调用 sync 同步执行 post 组件更新以后进行调用
})
- 可以进行监听一个人对象也可以进行监听多个对象
- ref的时候需要开启深度监听
- reactive 这个是默认开启深度监听的
高级侦听器(watchEffect)
let message2 = ref<string>('哈哈哈')
watchEffect(() => {
console.log('message2', message2.value);
}
这个是非惰性的,也就是说不管你的页面有没有进行更新他都会进行调用。在没有更新数据的时候就显示为undefind
组件以及他的生命周期
以前在vue的时候我们在用组件的时候是需要进行注册的,但是现在vue3里面可以直接不用进行注册,只要导入了就可以在页面里面直接进行使用。
import a form "./A.vue"
- 这个是关于组件在vue3里面更新的一个新特性,特别的好用省事
组件的生命周期
也就是组件从创建直到组件进行销毁发生的一系类事情
**对于相关生命周期函数进的一些解释**:
组合式API 是没有 beforeCreate 和 created 这两个生命周期的,没有的话就用setup替代
onBeforeMount()
在组件DOM实际渲染安装之前调用。在这一步中,根元素还不存在。
onMounted()
在组件的第一次渲染后调用,该元素现在可用,允许直接DOM访问
onBeforeUpdate()
数据更新时调用,发生在虚拟 DOM 打补丁之前。
onUpdated()
DOM更新后,updated的方法即会调用。
onBeforeUnmount()
在卸载组件实例之前调用。在这个阶段,实例仍然是完全正常的。
onUnmounted()
卸载组件实例后调用。调用此钩子时,组件实例的所有指令都被解除绑定,所有事件侦听器都被移除,所有子组件实例被卸载。