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

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(

相关文章:

  • 边缘计算的业务种类划分
  • tcc编译器教程6 进一步学习编译gmake源代码
  • ‌Visual Studio Code(VS Code)支持的编程语言
  • C#里最快添加log4net的日志输出
  • scala的集合
  • ROS实践(二)构建Gazebo机器人模型文件urdf
  • PgSql 操作技巧
  • 做到哪一步才算精通SQL
  • WordPress使用(3)
  • kali linux web扫描工具
  • 第七章:go 切片、空接口来存储任意类型的数据
  • 【redis】string类型相关操作:SET、GET、MSET、MGET、SETNX、SETEX、PSETEX
  • 1-001:MySQL的存储引擎有哪些?它们之间有什么区别?
  • doris:阿里云 MaxCompute
  • 菜鸟开发之MySQL常见字段值处理
  • 代码社区开源协议
  • QWEN2.5_0.5 微调生成文件目录
  • 重构及封装
  • 【高并发】高速将图片提交到flask、fastapi等主流服务框架
  • 【学习笔记】【AI医生】2-4 项目详细分析及DeepSeek适用场景
  • 《远山淡影》改编电影入围戛纳关注单元,张怡微谈石黑一雄
  • “十五五”时期长三角需创新机制,形成高水平一体化合作路径
  • 解放日报“解码上海AI产业链”:在开源浪潮中,集聚要素抢先机
  • “80后”南京大学天文与空间科学学院教授施勇加盟西湖大学
  • 天问二号探测器顺利转入发射区
  • “南昌航空一号”成功发射,赣江鄱阳湖有了专属卫星守护