当前位置:   article > 正文

前端之vue3生命周期、hook封装组合式api_vue3 生命周期 hooks

vue3 生命周期 hooks

vue3生命周期图

在这里插入图片描述

生命钩子(与name、setup配置项同级)

  beforeCreate() {
    console.log("-----beforeCreate-----");
  },
  created() {
    console.log("-----created-----");
  },
  beforeMount() {
    console.log("-----beforeMount-----");
  },
  mounted() {
    console.log("-----mounted-----");
  },
  beforeUpdate() {
    console.log("-----beforeUpdate-----");
  },
  updated() {
    console.log("-----updated-----");
  },
  beforeUnmount() {
    console.log("-----beforeUnmount-----");
  },
  unmounted() {
    console.log("-----unmounted-----");
  },
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

组合api形式写法

全部改名:
在这里插入图片描述
要引入
import {} from ‘vue’
在这里插入图片描述

hook

类似vue2的mixin,本质是函数, 用来封装组合式api(ref、reactive)

位置:

src下创建文件夹hooks, 内部文件是use···.js命名
在这里插入图片描述

内容:

每个hook文件,包含数据、方法、钩子

// 引入组合式api
import { reactive, onMounted, onBeforeUnmount } from "vue";

// 暴露hook函数
export default function () {
  // 数据: 存储鼠标位置
  let point = reactive({
    x: 0,
    y: 0,
  });

  // 函数: 记录鼠标点击位置
  function savePoint(event) {
    point.x = event.pageX;
    point.y = event.pageY;
    // console.log(point);
  }

  // 钩子
  onMounted(() => {
    window.addEventListener("click", savePoint);
  });

  onBeforeUnmount(() => {
    window.removeEventListener("click", savePoint);
  });

  // 返回数据
  return point;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

使用:

在组件中使用时
1…引入hook
2.使用

  setup() {
    let point = usePoint();

    return {
      point,
    };
  },
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.渲染模板

总结

在这里插入图片描述

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

闽ICP备14008679号