当前位置: 首页 > article >正文

vue3学习-3(逻辑复用)

vue3学习-3(逻辑复用)

    • 1.开始
    • 2.基础
    • 3.深入组件
    • 4. 逻辑复用
      • 1. 组合式函数
        • 鼠标跟踪器
        • 异步状态示例
        • 接收响应式状态
        • 约定和最佳实践
        • 通过抽取组合式函数改善代码结构
        • 在选项式 API 中使用组合式函数
        • 与其他模式的比较
      • 2. 自定义指令
        • 介绍
        • 自定义指令的使用时机
        • 指令钩子
        • 简化形式
      • 3.插件
        • 1. 介绍
        • 2.编写一个插件
        • 3.插件中的 Provide / Inject

1.开始

2.基础

3.深入组件

4. 逻辑复用

1. 组合式函数

鼠标跟踪器
  • 在 Vue 应用的概念中,“组合式函数”(Composables) 是一个利用 Vue 的组合式 API 来封装和复用有状态逻辑的函数。

  • 鼠标跟踪器示例,直接使用组合式api实现

    <script setup>
    import { ref, onMounted, onUnmounted } from 'vue'
    
    const x = ref(0)
    const y = ref(0)
    
    function update(event) {
      x.value = event.pageX
      y.value = event.pageY
    }
    
    onMounted(() => window.addEventListener('mousemove', update))
    onUnmounted(() => window.removeEventListener('mousemove', update))
    </script>
    
    <template>Mouse position is at: {
        { x }}, {
        { y }}</template>
    
  • 组合式函数的形式提取到外部文件使用

    // mouse.js
    import {
          ref, onMounted, onUnmounted } from 'vue'
    
    // 按照惯例,组合式函数名以“use”开头
    export function useMouse() {
         
      // 被组合式函数封装和管理的状态
      const x = ref(0)
      const y = ref(0)
    
      // 组合式函数可以随时更改其状态。
      function update(event) {
         
        x.value = event.pageX
        y.value = event.pageY
      }
    
      // 一个组合式函数也可以挂靠在所属组件的生命周期上
      // 来启动和卸载副作用
      onMounted(() => window.addEventListener('mousemove', update))
      onUnmounted(() => window.removeEventListener('mousemove', update))
    
      // 通过返回值暴露所管理的状态
      return {
          x, y }
    }
    
    <script setup>
    import { useMouse } from './mouse.js'
    
    const { x, y } = useMouse()
    </script>
    
    <template>Mouse position is at: {
        { x }}, {
        { y }}</template>
    

    例如还可以继续封装

    // event.js
    import {
          onMounted, onUnmounted } from 'vue'
    
    export function useEventListener(target, event, callback) {
         
      // 如果你想的话,
      // 也可以用字符串形式的 CSS 选择器来寻找目标 DOM 元素
      onMounted(

http://www.kler.cn/a/579942.html

相关文章:

  • Linux的基础操作指令
  • 《WebForms 实例》
  • CentOS 7上安装Kubernete(k8s)的操作步骤
  • 帧率转换原理及读写指针实现
  • 选型消息队列(MQ):ActiveMQ、RabbitMQ、RocketMQ、Kafka对比
  • 代码随想录算法训练营第六十一天 | 108. 冗余连接 109. 冗余连接II
  • PB:如何获取Excel中的工作表数量
  • unity xnode学习总结
  • 【学习方法】技术开发者的提问智慧:如何高效获得解答?
  • Spring Initializr创建springboot项目,提示java 错误 无效的源发行版:16
  • 基于SpringBoot实现旅游酒店平台功能六
  • Vue3 路由的历史记录 如何不允许浏览器前进后退 在函数中使用路由切换组件 路由的重定向
  • 单链表-代码精简版
  • Pytorch 转向TFConv过程中的卷积转换
  • (每日一题) 力扣 860 柠檬水找零
  • 详解继承、多态、消息(对象间通信)和重载
  • A523 527 pk口控制
  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-5.1.2基于Painless脚本的日志告警
  • GB/T4706.1-2024标准下的UV-C低压汞灯老化试验箱
  • [微服务设计]1_微服务