这是test组件{{num}}
当前位置:   article > 正文

uni-app中创建组件以及组件中生命周期函数_uniapp 使用组件内函数

uniapp 使用组件内函数

一 点睛

在uni-app中,可以通过创建一个后缀名为vue的文件,即创建一个组件成功,其他组件可以将该组件通过import的方式导入,再通过components进行注册即可。

二 代码

1 创建 test.vue 组件

  1. <template>
  2. <view id="myview">
  3. 这是test组件{{num}}
  4. </view>
  5. </template>
  6. <script>
  7. export default {
  8. data() {
  9. return {
  10. num: 3,
  11. intId: null
  12. };
  13. },
  14. beforeCreate() {
  15. console.log('实例已经开始初始化了,但数据还没初始化完成,页面也没开始渲染')
  16. console.log(this.num)
  17. },
  18. created() {
  19. // 在这个里面初始化数据
  20. console.log('实例创建完成后被立即调用')
  21. console.log(this.num)
  22. this.intId = setInterval(() => {
  23. console.log('执行定时器')
  24. }, 1000)
  25. },
  26. beforeMount() {
  27. console.log('在挂载开始前被调用', document.getElementById('myview'))
  28. },
  29. mounted() {
  30. // 在这个里面操作dom
  31. console.log('挂载已完成', document.getElementById('myview'))
  32. },
  33. destroyed() {
  34. console.log('组件销毁了')
  35. // 清空定时器
  36. clearInterval(this.intId)
  37. }
  38. }
  39. </script>
  40. <style>
  41. </style>

2 在 index.vue 页面中使用该组件

  1. <template>
  2. <view class="content">
  3. <test v-if="flag"></test>
  4. <button type="primary" @click="checkTest">切换test组件</button>
  5. </view>
  6. </template>
  7. <script>
  8. /* 引入组件 */
  9. import test from '../../components/test.vue'
  10. export default {
  11. data() {
  12. return {
  13. title: 'Hello',
  14. flag: true
  15. }
  16. },
  17. onLoad() {
  18. console.log('页面加载了')
  19. },
  20. onShow() {
  21. console.log('页面显示了')
  22. },
  23. onReady() {
  24. console.log('页面初次渲染完成了')
  25. },
  26. onHide() {
  27. console.log('页面隐藏了')
  28. },
  29. methods: {
  30. checkTest() {
  31. this.flag = !this.flag
  32. }
  33. },
  34. // 组件组件
  35. components: {
  36. test: test
  37. }
  38. }
  39. </script>
  40. <style>
  41. .content {
  42. display: flex;
  43. flex-direction: column;
  44. align-items: center;
  45. justify-content: center;
  46. }
  47. .logo {
  48. height: 200rpx;
  49. width: 200rpx;
  50. margin-top: 200rpx;
  51. margin-left: auto;
  52. margin-right: auto;
  53. margin-bottom: 50rpx;
  54. }
  55. .text-area {
  56. display: flex;
  57. justify-content: center;
  58. }
  59. .title {
  60. font-size: 36rpx;
  61. color: #8f8f94;
  62. }
  63. </style>

三 效果

 

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