Vue2&vue3的生命周期函数11个+监听属性+计算属性+vue内置的基本指令

一、vue2生命周期函数

vue2里一共有11个生命周期函数,从vue创建、运行、到销毁总是伴随着各种事件,这些事件就称为生命周期.

分别是创建、挂载、更新到销毁

【常用的】

⑴【beforecreate】实例创建前。

vue完全创建之前,会自动执行这个函数。

⑵【Created】实例创建后。

这也是个生命周期函数,beforecreate执行完后会自动执行它。其中data的值是由在created中请求并初始化的。

⑶【beforemount】组件挂载前。

模板即将挂载到页面的一瞬间会执行beforemount

⑷【Mounted】组件挂载后

挂载完成,也就是模板中的html渲染到了html页面中,此时一般可以做一些ajax操作。

mounted只会执行一次。

⑸【beforeupdate】视图更新前

数据发生改变,还没有渲染之前beforeupdate会执行

⑹【updated】视图更新后

当数据更新完重新渲染时,updated这个函数会执行。

⑺【beforedestroy】失礼销毁前

钩子函数在实例销毁之前调用。在这一步,实例仍然完全可用。

⑻【Destroy】实例销毁后

做收尾工作,在结束之后做一些事情,比如定时器和全局更新要在这里销毁。

【不常用】

⑼①【activeted】被keep-alive缓存的组件激活时调用

⑽②【deactiveted】 没有被激活时调用

⑾③【errorCaotured】捕捉子组件的错误时调用⑴

如果不想让它报错就return false(不推荐)

二、vue3生命周期函数

⑴【beforecreate】------->【setup】 开始创建组件前,创建的是data和method

Create------- >【setup】

setup 这个函数是在beforeCreate和created之前运行的,所以你可以用它来代替这两个钩子函数。

⑵【beforemount】------- >【onBeforeMount】组件挂载前

在挂载开始之前被调用,相关的render函数首次被调用。

⑶【Mounted】------- >【onMount】组件挂载后

el被新创建的vm.$el替换,并挂载到实例上去之后调用该钩子。

⑷【beforeupdate】------- >【onBeforeUpdate】视图更新前

数据发生改变,还没有渲染之前beforeupdate会执行

数据发生改变时调用,你可以在这个钩子中进一步地更改状态,还不会触发附加的重渲染效果。

⑸【updated】------- >【onUpdate】视图更新后

由于数据更改导致的虚拟dom重新渲染和打补丁,在这之后后调用该钩子

当这个钩子被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。然而在大多数情况下,你应该避免在此期间更改状态,因为这可能会导致更新无限循环。

该钩子在服务器端渲染期间不被调用

⑹【beforedestroy】------- >【onBeforeUnmount】卸载组件实例之前

视图销毁前调用,在这一步,实例仍然完全可用

⑺【Destroyed】------- >【onUnmount】卸载组件实例之后

vue实例销毁后调用,调用后,vue实例指示的所有东西都会绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。该钩子在服务器端渲染期间不被调用。

三、计算属性

cpmputed:{} 需要return出返回值,直接使用函数名就可以获取返回值。使用methods进行计算在使用时,需要定义函数才可以获取反回值。

四、监听属性

监听属性如果是一个值的话直接用函数就可以了,否则开启深度监听

newval新值,oldval

watch:{

num(newval,oldval) {  }

}

①深度监听

watch:{

handler(newval,oldval) {  },

deep:true   ///开启深度监听

immediate:true  ///

}

【vue内部的基本指令】

循环v-for 判断v-if v-show 插值 v-html v-text 绑定属性v-bind 双向数据绑定 v-model

JQuery里改变属性值用 $('.a').attr('name',1).jqrey 改属性值

你可能感兴趣的:(vue.js,javascript,前端)