当前位置:   article > 正文

uniapp5组件的使用、组件的生命周期_uniapp vue3 h5生命周期

uniapp vue3 h5生命周期

在主目录下创建components ,记得要和pages同级哦!

然后直接右键创建组件,把它引入到你想引入的页面

注意:创建组件时,不要用uniapp定义的组件名,比如text,view,image等

组件引入完成。

组件的生命周期 

uni-app 组件支持的生命周期与vue标准组件的生命周期相同。这里没有页面级的onLoad等生命周期:

函数名说明平台差异说明最低版本
beforeCreate在实例初始化之前被调用。详见(opens new window)
created在实例创建完成后被立即调用。详见(opens new window)
beforeMount在挂载开始之前被调用。详见(opens new window)
mounted挂载到实例上去之后调用。详见 (opens new window)注意:此处并不能确定子组件被全部挂载,如果需要子组件完全挂载之后在执行操作可以使用$nextTickVue官方文档(opens new window)
beforeUpdate数据更新时调用,发生在虚拟 DOM 打补丁之前。详见(opens new window)仅H5平台支持
updated由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。详见(opens new window)仅H5平台支持
beforeDestroy实例销毁之前调用。在这一步,实例仍然完全可用。详见(opens new window)
destroyedVue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。详见(opens new window)

 在组件页面写组件的生命周期

注意:微信小程序中没有 document.getElementById('myview')

  1. <template>
  2. <view>
  3. 这是test组件··
  4. <view id="myview">
  5. 给它引入到通讯录中{{num}}
  6. </view>
  7. </view>
  8. </template>
  9. <script>
  10. export default {
  11. name: "test",
  12. data() {
  13. return {
  14. num: 3,
  15. dingshiqi: null
  16. };
  17. },
  18. // 实例已经开始初始化了,但是数据还没有初始化完成,包括页面也没有开始渲染
  19. beforeCreate() {
  20. console.log('实例已经开始初始化了')
  21. console.log(this.num) //undefined
  22. },
  23. // 可以拿到数据,包括被定义的方法
  24. created() {
  25. console.log('实例已经创建完成了')
  26. console.log(this.num) //3
  27. // 给定时器赋值为空组件在销毁时,就不会再执行定时器
  28. this.dingshiqi = setInterval(() => {
  29. console.log('1秒钟执行一次定时器')
  30. }, 1000)
  31. },
  32. // 数据能够渲染在页面上,组件还没有
  33. beforeMount() {
  34. // console.log('beforeMount', document.getElementById('myview'))
  35. console.log(this.num) //3
  36. },
  37. // 组件渲染到页面上
  38. mounted() {
  39. // console.log('mounted', document.getElementById('myview'))
  40. console.log(this.num) //3
  41. },
  42. destroyed() {
  43. console.log('destroyed组件销毁')
  44. // 在组件销毁时,清除定时器
  45. clearInterval(this.dingshiqi)
  46. }
  47. }
  48. </script>
  49. <style>
  50. </style>

 在引入组件的页面

  1. <template>
  2. <view>
  3. <test v-if="flag"></test>
  4. <button type="primary" @click="qiehuan" v-if="!flag">显示test组件</button>
  5. <button type="primary" @click="qiehuan2" v-if="flag">隐藏test组件</button>
  6. </view>
  7. </template>
  8. <script>
  9. import test from '../../components/test.vue'
  10. export default {
  11. data() {
  12. return {
  13. flag:true
  14. }
  15. },
  16. components:{test},
  17. methods: {
  18. qiehuan(){
  19. this.flag=true
  20. },
  21. qiehuan2(){
  22. this.flag=false
  23. }
  24. }
  25. }
  26. </script>
  27. <style>
  28. </style>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/318594
推荐阅读