告别Vue 2时代:Composables,你的下一代状态逻辑复用神器

简介: 告别Vue 2时代:Composables,你的下一代状态逻辑复用神器

还记得在Vue 2的日子里,我们是如何复用状态逻辑的吗?mixins?它就像一盒不知道来源的巧克力,你永远不知道下一个属性名冲突会在哪里爆发。或者高阶组件?它们常常带来不必要的包装地狱,让组件树变得臃肿不堪。

Vue 3的Composition API,特别是Composables,正是为了优雅地解决这些问题而生。

什么是Composables?

简单来说,它就是一个利用Vue 3的refcomputedonMounted等响应式API,将可复用的状态逻辑“组合”到一个函数中的模式。你可以把它想象成一个自带响应式能力的、高度可定制的自定义Hook。

一个简单的例子:useCounter

让我们创建一个经典的计数器逻辑:

// useCounter.js
import {
    ref } from 'vue';

export function useCounter(initialValue = 0) {
   
  const count = ref(initialValue);

  const increment = () => count.value++;
  const decrement = () => count.value--;
  const reset = () => count.value = initialValue;

  return {
    count, increment, decrement, reset };
}

现在,在任何组件中,你都可以像这样使用它:

<template>
  <div>
    <p>当前计数:{
  { count }}</p>
    <button @click="increment">+1</button>
    <button @click="decrement">-1</button>
    <button @click="reset">重置</button>
  </div>
</template>

<script setup>
import { useCounter } from './useCounter';

const { count, increment, decrement, reset } = useCounter(10); // 从10开始
</script>

Composables的优势何在?

  1. 逻辑清晰:所有相关的状态和方法都聚集在一起,代码更易于理解和维护。
  2. 无命名冲突:得益于解构赋值,返回的变量名可以随意重命名,彻底告别mixins的隐式冲突。
  3. 类型推导友好:对TypeScript的支持极佳,能提供完美的类型推断。
  4. 灵活组合:你可以在一个组件内组合多个Composables,构建出复杂而清晰的数据流。

拥抱未来

mixins到Composables,不仅仅是API的升级,更是前端工程思想的一次进化。它鼓励我们将关注点分离,构建出更健壮、更可测试的代码。

是时候在你的下一个Vue 3项目中,尝试一下Composables的魅力了!


这篇文章共计约450字,聚焦于一个具体的前端技术点,并提供了代码示例,符合技术博客的风格。

目录
相关文章
|
7月前
|
前端开发
告别Flexbox?CSS Grid才是布局的终极答案!
告别Flexbox?CSS Grid才是布局的终极答案!
290 113
vue3+vite项目中使用svg图标
vue3+vite项目中使用svg图标
2409 1
Nestjs(二)cli 创建项目与基本使用
Nestjs(二)cli 创建项目与基本使用
424 5
|
机器学习/深度学习 数据建模 数据挖掘
数据建模是什么意思?如何进行数据建模?
数据建模是什么意思?如何进行数据建模?
1168 2
|
7月前
|
前端开发 JavaScript API
什么是 Headless UI?
什么是 Headless UI?
713 115
|
2月前
|
前端开发 小程序 JavaScript
前端组件库——WeUI知识点大全(一)
教程来源 http://lemci.cn/ WeUI是微信官方推出的轻量级CSS样式库,专为微信生态Web应用设计,确保网页界面与微信原生体验高度一致。支持CDN、npm及小程序多种集成方式,兼顾一致性、移动优先与可扩展性,是公众号、H5等开发的必备UI方案。
|
12月前
|
Web App开发 前端开发 API
闪电优化术:3个前端性能技巧让你的网页飞起来
闪电优化术:3个前端性能技巧让你的网页飞起来
305 84
|
机器学习/深度学习 人工智能 PyTorch
Transformer模型变长序列优化:解析PyTorch上的FlashAttention2与xFormers
本文探讨了Transformer模型中变长输入序列的优化策略,旨在解决深度学习中常见的计算效率问题。文章首先介绍了批处理变长输入的技术挑战,特别是填充方法导致的资源浪费。随后,提出了多种优化技术,包括动态填充、PyTorch NestedTensors、FlashAttention2和XFormers的memory_efficient_attention。这些技术通过减少冗余计算、优化内存管理和改进计算模式,显著提升了模型的性能。实验结果显示,使用FlashAttention2和无填充策略的组合可以将步骤时间减少至323毫秒,相比未优化版本提升了约2.5倍。
974 3
Transformer模型变长序列优化:解析PyTorch上的FlashAttention2与xFormers
|
JavaScript 前端开发 UED
vue中vue-router路由懒加载(按需加载)的作用以及常见的实现方法
vue中vue-router路由懒加载(按需加载)的作用以及常见的实现方法
1050 1
|
Web App开发 开发者