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

@tarojs/components 和 taro-ui 中的组件之间的区别

1. 来源与用途

  • @tarojs/components:Taro 官方提供的基础组件库,包含了微信小程序、H5 等不同平台的通用组件(如 View, Input, Button, Form 等)。这些组件是跨平台的,并提供了与微信小程序等平台原生组件类似的 API。
  • taro-ui:Taro 官方的 UI 组件库,基于 Taro 框架的设计,提供了更高级的 UI 组件,如 AtForm, AtInput, AtButton, AtInputNumber 等。这些组件通常具有更好的样式和更丰富的功能,适用于快速开发界面。

2. 功能与样式

  • @tarojs/components
    • 基础组件,样式较为简单,通常需要手动添加样式或进行二次开发。
    • 这些组件与微信小程序的原生组件类似,如 Form, Input, Button,用于构建基础的表单或按钮功能。
    • 没有额外的样式或动画,需要自行设计。
  • taro-ui
    • 高级 UI 组件,自带样式,开箱即用,并且提供了更多高级功能。例如:
      • AtInput 提供了输入框的样式和交互,内置的 onChange 方法处理。
      • AtForm 提供表单提交、重置的逻辑,并且与 AtButton 等搭配使用时,样式更加统一。
      • AtButton 提供了定制化的按钮样式,且支持多种样式,如带图标、颜色变化等。
    • 这些组件基于 @tarojs/components 进行封装,提供更丰富的 UI 和交互逻辑。
    • 适合希望快速搭建漂亮 UI 的场景。

3. 使用上的区别

5. 第三方依赖

总结来说,taro-ui 提供了更加高级和样式丰富的组件,适合快速搭建复杂界面,而 @tarojs/components 提供了基础组件,灵活性更高但需要手动管理样式和功能。

  • @tarojs/components 的表单和按钮

  • import { Form, Input, Button } from '@tarojs/components';
    
    const MyComponent = () => (
      <Form onSubmit={() => console.log('Submitted')}>
        <Input name="name" placeholder="请输入名字" />
        <Button formType="submit">提交</Button>
      </Form>
    );
    

    taro-ui 的表单和按钮

  • import { AtForm, AtInput, AtButton } from 'taro-ui';
    
    const MyComponent = () => (
      <AtForm onSubmit={() => console.log('Submitted')}>
        <AtInput name="name" placeholder="请输入名字" />
        <AtButton formType="submit">提交</AtButton>
      </AtForm>
    );
    

    4. 选择何时使用

  • @tarojs/components:适合希望自己编写样式、对 UI 进行细粒度控制的场景,或者开发简单的、小型项目。
  • taro-ui:适合需要快速开发界面、希望获得一致性 UI 风格的场景。它提供了内置的样式和交互,适合中大型项目或对视觉效果有较高要求的项目。
  • 使用 taro-ui 时,需要引入它的样式文件,如 import "taro-ui/dist/style/index.scss",而 @tarojs/components 不需要引入额外样式,直接使用。

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

相关文章:

  • WPF拖拽交互全攻略及实现自定义拖拽控件及数据交换技巧解析
  • 上市公司数字经济与实体经济融合发展程度测算数据(2008-2022年)-最新出炉_附下载链接
  • 信息安全工程师(72)网络安全风险评估概述
  • 【RUOYI3.8.8】框架参考笔记
  • python代码中通过pymobiledevice3访问iOS沙盒目录获取app日志
  • 中阳智能投资系统:量化科技引领未来投资之路
  • HarmonyOS NEXT API12最新版 端云一体化开发-创建端云一体化项目流程
  • docker部署SQL审核平台Archery
  • C++类和对象 (中)
  • ubuntu内核更新导致显卡驱动掉的解决办法
  • 软考中级计算题笔记
  • C++朝花夕拾
  • Golang Agent 可观测性的全面升级与新特性介绍
  • 记MySQL下一次DEPENDENT SUBQUERY的优化
  • Github 2024-10-29Python开源项目日报 Top10
  • 算法刷题-小猫爬山
  • 从0开始搭建一个生产级SpringBoot2.0.X项目(二)SpringBoot应用连接数据库集成mybatis-plus
  • ElasticSearch - Bucket Script 使用指南
  • 三菱FX5U PLC使用SD存储卡固件更新的方法
  • python实现excel数据导入数据库
  • 频率限制:WAF保护网站免受恶意攻击的关键功能
  • Yolov5网络架构分析以及训练图解
  • Kafka如何控制消费的位置?
  • 数据驱动业务中的BDS对账班牛返款表集成方案
  • 前端开发设计模式——观察者模式
  • 论文题目:深度学习在自然语言处理中的应用研究