OpenTiny Vue 3.10.0 版本发布:组件 Demo 支持 Composition 写法,新增4个新组件

简介:基于 OpenTiny 组件库的 rendereless 无渲染组件架构 在 HAE 自研阶段,我们实现的数据双向绑定、面向对象的 JS 库、配置式开发的注册表等特性,随着前端技术的高速发展现在已经失去存在的意义,但是在 AUI 阶段探索的新思路新架构,经过大量的业务落地验证,再次推动前端领域的创新。TinyVue 继承了 HAE、AUI,OpenTiny 是一套企业级组件库解决方案,适配 PC 端 / 移动端等多端,涵盖 Vue2 / Vue3 / Angular 多技术栈,拥有主题配置系统 / 中后台模板 / CLI 命令行等效率提升工具,可帮助开发者高效开发 Web 应用。 阅读详情

我们非常高兴地宣布,2023年8月14日,OpenTiny Vue 发布了 v3.10.0 🎉。

OpenTiny 每次大版本发布,都会给大家带来一些实用的新特性,上一个版本我们推出了3个新组件,并且提供 SSR 支持。

🎉OpenTiny Vue 3.9.0 版本发布:新增3个新组件、支持 SSR

本次 3.10.0 版本主要推出以下新特性:

  • 新增 DialogSelect 弹窗选择组件
  • 新增 FilterPanel 过滤面板组件
  • 新增 TagGroup 标签组组件
  • 新增 InfiniteScroll 无限滚动组件
  • 官网组件 Demo 支持 Composition api 写法
  • 组件 Demo 支持 Playground 代码演练场

OpenTiny 新增了以下新的贡献者:

  • @gimmyhehe
  • @chenqifeng66
  • @Zz-ZzzZ
  • @lyx-jay

感谢你们对 OpenTiny Vue 的贡献🤝

你可以更新 @opentiny/vue@3.10.0 进行体验!

组件Demo支持Composition写法

OpenTiny Vue 基于无渲染组件设计架构,可同时支持 Vue2 和 Vue3,但是我们的官网组件 Demo 在 3.10.0 版本之前只有 Options api 的写法,导致很多使用 Vue3 的开发者用起来很不方便,于是我们优化了文档的呈现,参考 Vue 官网,增加了 Options(选项式) 和 Composition(组合式) 两种写法的切换。

图片

你可以在官网进行体验:https://opentiny.design/tiny-vue/zh-CN/os-theme/components/button

提供Playground

在实际项目中,往往需要根据不同的品牌、风格、场景等需求来定制不同的主题,而组件库的主题规范往往是固定的,无法满足这种需求。因此,提供主题规范自定义的功能,可以让用户根据自己的需求来定制主题,从而更好地满足项目需求。

8月初,xiaoy 同学给我们贡献了 OpenTiny Vue Playground 项目:

《但因热爱,愿迎万难,OpenTiny Vue Playground正式上线🎉》

我们将这个项目集成到了 OpenTiny 的官网,现在你可以在每个组件 Demo 的右上角点击“打开演练场”的按钮,在演练场中编辑这个 Demo,并实时查看修改后的组件效果,是不是非常方便。

图片

图片

你可以在以下链接进行体验:https://opentiny.design/tiny-vue/playground?cmpId=button&fileName=base.vue&apiMode=Composition

DialogSelect弹窗选择

这个组件用于选择数据,和 Select 下拉选择组件不同的是:

Select 选择的是列表数据,而 DialogSelect 选择的是表格和树型数据,并且支持对选中的数据进行便捷地排序。

你可以在以下链接体验这个组件的交互效果。

https://opentiny.design/tiny-vue/zh-CN/os-theme/components/dialog-select

当我们只需要在一个简单的列表中选择数据,使用 Select 毫无疑问是最简单的,但是一旦我们要选择的数据非常复杂,需要使用一个表格才能呈现,并且需要对数据进行过滤、分页、排序等操作时,Select 组件就力不从心啦。

比如微信公众号选择文章链接的功能,就有点类似 DialogSelect 的效果。

图片

你可以使用 DialogSelect 来实现复杂数据的选择。使用起来也很简单,只需要配置:

  • v-model:visible:用来控制弹窗的显示和隐藏
  • grid-op:配置表格列和数据
<template>
  <div class="tiny-demo">
    <tiny-button @click="dialogSelectVisible = !dialogSelectVisible">打开</tiny-button>
    <tiny-dialog-select
      v-model:visible="dialogSelectVisible"
      :grid-op="state.gridOp"
    >
    </tiny-dialog-select>
  </div>
</template>

<script setup lang="ts">
import { ref } from 'vue'
import {
  DialogSelect as TinyDialogSelect,
  Button as TinyButton
} from '@opentiny/vue'

const dialogSelectVisible = ref(false)

const gridOp = ref({
  columns: [
    { field: 'id', title: 'ID', width: 40 },
    { field: 'name', title: '名称', showOverflow: 'tooltip' },
    { field: 'province', title: '省份', width: 80 },
    { field: 'city', title: '城市', width: 80 }
  ],
  data: [
    { id: '1', name: 'GFD科技有限公司', city: '福州', province: '福建' },
    { id: '2', name: 'WWW科技有限公司', city: '深圳', province: '广东' },
    { id: '3', name: 'RFV有限责任公司', city: '中山', province: '广东' },
    { id: '4', name: 'TGB科技有限公司', city: '龙岩', province: '福建' },
    { id: '5', name: 'YHN科技有限公司', city: '韶关', province: '广东' },
    { id: '6', name: 'WSX科技有限公司', city: '黄冈', province: '湖北' },
    { id: '7', name: 'KBG物业有限公司', city: '赤壁', province: '湖北' },
    { id: '8', name: '深圳市福德宝网络技术有限公司', city: '深圳', province: '广东' },
    { id: '9', name: 'KBG物业有限公司', city: '赤壁', province: '湖北' },
    { id: '10', name: '深圳市福德宝网络技术有限公司', city: '深圳', province: '广东' }
  ]
})
</script>

效果图如下:

图片

该组件主要支持以下功能:

  • 支持表格和树两种数据的选择
  • 支持单选和多选
  • 支持对表格数据进行分页
  • 支持对已选择的数据进行拖拽排序

你可以在以下链接体验该组件的更多功能:https://opentiny.design/tiny-vue/zh-CN/os-theme/components/dialog-select

FilterPanel过滤面板

过滤面板如它的名字,用来显示过滤条件的,这个组件主要包含几个部分:

  • 一个过滤字段名称
  • 中间的过滤条件(可删除)
  • 过滤面板(可通过插槽自定义)

图片

用起来也很简单。

<template>
  <div>
    <tiny-filter-panel ref="filterPanelRef" label="物品数量" @handle-clear="handleClear" :value="value">
      <tiny-radio-group v-model="radioVal" size="mini">
        <tiny-radio label="大于">大于</tiny-radio>
        <tiny-radio label="等于">等于</tiny-radio>
        <tiny-radio label="小于">小于</tiny-radio>
      </tiny-radio-group>
      <tiny-input type="text" v-model="inputVal" style="margin-top: 20px"></tiny-input>
    </tiny-filter-panel>
  </div>
</template>

<script setup>
import { ref, computed } from 'vue'
import {
  FilterPanel as TinyFilterPanel,
  Radio as TinyRadio,
  RadioGroup as TinyRadioGroup,
  Input as TinyInput
} from '@opentiny/vue'

const inputVal = ref('')
const radioVal = ref('')
const value = computed(() => {
  return radioVal.value + inputVal.value
})

function handleClear() {
  radioVal.value = ''
  inputVal.value = ''
}
</script>

效果如下:

图片

你可以在以下链接体验该组件:https://opentiny.design/tiny-vue/zh-CN/os-theme/components/filter-panel

TagGroup标签组

标签组是对标签组件能力的扩展,能够通过数据驱动的方式配置一组标签,并在显示不下的时候使用 … 进行折叠展示。

使用起来也很简单,只需要配置下 data 属性即可。

<template>
  <tiny-tag-group :data="data"></tiny-tag-group>
</template>

<script setup>
import { ref } from 'vue'
import { TagGroup as TinyTagGroup } from '@opentiny/vue'

const data = ref([
  {
    name: '标签一',
    type: 'default'
  },
  {
    name: '标签二',
    type: 'default'
  },
  {
    name: '标签三',
    type: 'default'
  },
  ...
])
</script>

效果如下:

图片

你可以在以下链接体验该组件:https://opentiny.design/tiny-vue/zh-CN/os-theme/components/tag-group

InfiniteScroll 无限滚动

数据量超大的场景下,我们不希望一次性显示全部数据,就会使用滚动到底部再加载下一页数据的交互,这就是 InfiniteScroll 组件提供的能力。

你需要注意无限滚动组件和虚拟列表组件的区别:

无限滚动组件和虚拟列表组件都是滚动时动态加载数据,但是虚拟列表一般是有固有限数量的DOM元素,滚动时动态往DOM元素内插入数据,而无限滚动时会随着滚动不断往页面插入新的DOM元素。

大家可以看下动画感受下无限滚动组件的效果。

图片

使用方式很简单:

<template>
  <ul v-infinite-scroll="load" class="tiny-infinite-list">
    <li v-for="i in count" :key="i" class="tiny-infinite-list-item">{{ i }}</li>
  </ul>
</template>

<script setup lang="ts">
import InfiniteScroll from '@opentiny/vue-renderless/common/deps/infinite-scroll'
import { ref } from 'vue'

const count = ref(0)
const vInfiniteScroll = InfiniteScroll

const load = () => {
  count.value += 2
}
</script>

效果如下:

图片

你可以在以下链接体验该组件:https://opentiny.design/tiny-vue/zh-CN/os-theme/components/infinite-scroll

更多版本特性,请查看以下链接: https://github.com/opentiny/tiny-vue/releases/tag/v3.10.0

关于 OpenTiny

OpenTiny 是一套企业级组件库解决方案,适配 PC 端 / 移动端等多端,涵盖 Vue2 / Vue3 / Angular 多技术栈,拥有主题配置系统 / 中后台模板 / CLI 命令行等效率提升工具,可帮助开发者高效开发 Web 应用。

核心亮点:

  1. 跨端跨框架:使用 Renderless 无渲染组件设计架构,实现了一套代码同时支持 Vue2 / Vue3,PC / Mobile 端,并支持函数级别的逻辑定制和全模板替换,灵活性好、二次开发能力强。
  2. 组件丰富:PC 端有100+组件,移动端有30+组件,包含高频组件 Table、Tree、Select 等,内置虚拟滚动,保证大数据场景下的流畅体验,除了业界常见组件之外,我们还提供了一些独有的特色组件,如:Split 面板分割器、IpAddress IP地址输入框、Calendar 日历、Crop 图片裁切等
  3. 配置式组件:组件支持模板式和配置式两种使用方式,适合低代码平台,目前团队已经将 OpenTiny 集成到内部的低代码平台,针对低码平台做了大量优化
  4. 周边生态齐全:提供了基于 Angular + TypeScript 的 TinyNG 组件库,提供包含 10+ 实用功能、20+ 典型页面的 TinyPro 中后台模板,提供覆盖前端开发全流程的 TinyCLI 工程化工具,提供强大的在线主题配置平台 TinyTheme

联系我们:

更多视频内容也可以关注OpenTiny社区,B站/抖音/小红书/视频号。

关于Arduino中的常用函数 一、I/O函数 二、时间函数 三、数学函数 abs 返回其参数的无符号值 【abs(12)返回12,abs(-12)也返回12】 constrain 限制一个数字以阻止它超出范围。第一个参数是被限制的数字,第二个参数是范围区间的开始,第三个参数是允许的数字范围区间的结尾。 【constrain(8,1,10)返回8,constrain(11,1,10)返回10,constrain(0,1,10)返回1】 map 将一个范围内的数字映射到另一个范围。第一个参数是要映射到数字,第二个和第三个参数是from范围( 阅读详情

相关推荐

vasp算表面吸附流程_VASP表面吸附计算实例分析

本文主要为了记录在学习Vasp计算过程中如何设置INCAR中的一些参数,并不着重讲解其含义,详见可自行到vasp官网查阅。其次关于建模部分也不做细致讨论,一般结构可从Materials Studio里自带的晶体数据库导出,或从三大数据库网站上下载:1、Materaials Project网址:https://materialsproject.org/(强烈推荐,邮箱注册即可使用)2、CCDC网址:...

weixin_39617669的博客 2240

TinyVue - 华为云 OpenTiny 出品的企业级前端 UI 组件库,免费开源,同时支持 Vue2 / Vue3,自带 TinyPro 中后台管理系统

华为最新发布的前端 UI 组件库,支持 PC 和移动端,自带了 admin 后台系统,完成度很高,web 项目开发又多一个选择。

那些免费的砖 3618

逆向工程师必备:用MDL绕过游戏保护读取内存数据的完整流程(附POC代码)

本文深入探讨了内核级内存访问技术,重点介绍了如何利用MDL(Memory Descriptor List)机制稳定、隐蔽地绕过游戏反作弊系统读取进程内存。通过对比MmCopyVirtualMemory等方法的优劣,提供了完整的MDL映射实战代码与反检测策略,为逆向工程师在内核态进行安全内存操作提供了专业指导。

weixin_29227425的博客 625

分享OpenTiny总结VUE目录结构

OpenTiny总结VUE目录结构,在设计规范和基础组件的基础上, 继续向上构建,提炼出典型模板/业务组件/配套设计资源,进一步提升企业级中后台产品设计研发过程中的『用户』和『设计者』的体验。

通达的博客 1532

ESP32-CAM图像糊成马赛克?OV2640参数调优保姆级教程(亮度/对比度/饱和度)

本文提供了一份详细的ESP32-CAM图像调优教程,针对OV2640摄像头常见的图像模糊问题,从分辨率设置、亮度/对比度/饱和度调整到高级寄存器配置,帮助用户优化网页显示画质。通过代码示例和实用技巧,解决马赛克、色彩暗淡等问题,提升摄像头性能。

weixin_30410119的博客 596

Springboot项目中使用邮箱验证码注册登录的代码实现

本文介绍了在Spring Boot应用中实现邮箱验证码注册和登录功能的完整方案。文章首先概述了三种用户认证方式(邮箱验证码注册/登录和传统密码登录),然后详细说明了实现所需的技术栈(Spring Boot、Spring Security、JWT等)。重点阐述了邮件服务配置、验证码生成与存储的核心实现,包括QQ邮箱授权码获取、Thymeleaf邮件模板处理以及验证码缓存管理。最后展示了发送验证码和用户注册的API实现,为开发者提供了完整的参考方案。该方案兼顾安全性和用户体验,适合现代Web应用的用户认证需求。

BXCQ_xuan的技术专栏 | 实战干货·实践教程·学习笔记 1340

一个 OpenTiny,Vue2 Vue3 都支持!

大家好,我是 Kagol,OpenTiny 开源社区运营,TinyVue 跨端、跨框架组件库核心贡献者,专注于前端组件库建设和开源社区运营。今天给大家介绍如何同时在 Vue2 和 Vue3 项目中使用 TinyVue。TinyVue 是一套跨端、跨框架的企业级 UI 组件库,支持 Vue 2 和 Vue 3,支持 PC 端和移动端。???? 特性:???? 包含 80 多个简洁、易用、功能强大的组件???? 一套代...

frontend_frank的博客 359

单总线CPU设计(变长指令周期3级时序)(HUST)(头歌实验)

利用比较器等功能模块将32位MIPS 指令字译码生成LW、SW、BEQ、SLT、ADDI、OtherInstr信号也就是利用比较器将指令字转换为译码信号,OP与不同信号对应(查询MIPS手册得知) 16 进制 :23 是 2进制: 00100011 ,把获得的OP,Func,和常数比对,相同输出1.按照题目要求填写表格,使用logisim的组合逻辑电路分析功能,当然也可以直接再logisim中写真值表。单总线采用变长指令周期,不同指令周期数不同,节拍数可变化。写的excel表格最终生成电路(当然 需要先把

xuxuaifeifei的博客 1万+

OpenTiny使用指南

OpenTiny使用指南

XZZXBC的博客 588

2026年3月GESP真题及题解(C++七级):物流网络

2026年3月GESP真题及题解(C++七级):物流网络

王老师青少年编程 1126

从 Integrated Configuration 到 Integration Flow,SAP PI/PO 老配置迁移的一次温和重构

很多还在运行 SAP PI/PO 的系统,Integration Directory 里都积累了不少 Integrated Configuration,也就是日常项目里常说的 ICO。它们可能稳定运行了多年,负责把采购订单、物料主数据、客户主数据、发票、发货通知从一个系统送到另一个系统。问题在于,ICO 这种对象很实用,却不够直观。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 99

Vue常用的组件库大全【前端工程师必备】【实时更新】【移动端、PC端(web端)、数据可视化组件库(数据大屏) 、动画组件库、富文本、Markdown,3D组件库,Markdown,AI组件库

Vue组件库,超100个Vue组件库,Vue常用的组件库大全【前端工程师必备】【实时更新】【移动端、PC端(web端)、数据可视化组件库(数据大屏) 、动画组件库、文本编辑器,富文本Markdown,3D组件库】

程序员猫爪 3万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

实操指南|如何用 OpenTiny Vue 组件库从 Vue 2 升级到 Vue 3

本文是一篇如何从其他项目迁移至 TinyVue 组件库 并从 Vue2 项目升级 Vue3 项目的指南

OpenTiny的博客 1006

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

OpenTiny Vue 组件库实现主题配置和UX交互规范自定义

本文向我们介绍了如何在OpenTiny Vue组件库中进行UX规范的定制修改。学会使用该方法后,开发者可以更精准地控制或修改用户体验规范的范围,提高开发效率,同时降低维护成本和代码复杂度。

OpenTiny的博客 666

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

什么?你还不会 OpenTiny 跨框架组件库适配微前端?

本文通过实战操作梳理,带你手把手实现 TinyVue 跨框架组件库适配微前端~欢迎关注,点赞,评论~

OpenTiny的博客 1384

听说过OpenTiny开源项目吗?什么场景都能用

是华为云出品的开源项目,号称是跨端跨框架的一站式解决方案,让我来一探究竟!OpenTiny目前开放了开发相关的,以及衍生生态产品。目前主流的前端框架比如ElementUI、antDesign都对Vue版本进行了区分,比如ElementUI适用于Vue2,ElementPlus适用于Vue3;ant-design-vue 1.x适用于Vue2,ant-design-vue 2.x以上适用于Vue3;

weixin_38593969的博客 853

部署TinyVue/TinyEngine的完整指南【OpenTiny】

部署TinyVue/TinyEngine的完整指南【OpenTiny】 项目地址

weixin_46011290的博客 276

还在为Vue2和Vue3选组件库头疼吗?来看看TinyVue

最近华为云发布了他们的一站式解决方案,这套方案能够同时适配 PC 端/移动端,可以同时接入 Vue2 、Vue3 及Angular 技术栈,还拥有CLI命令行工具-TinyCli、中后台模板-TinyPro、以及主题配置系统 -TinyTheme 等效率提升工具,可帮助我们开发者高效开发 Web 应用。

weixin_38593969的博客 419

OpenTiny训练营实操体验|轻松解锁TinyVue智能组件开发Web应用

首先,我们提供了一个用 Vue3 搭建的商品列表管理的单页面应用,它使用 TinyVue 组件库中的 Select、Grid 等组件。该商品管理应用默认会显示商品管理的表格,并且已经实现了条件查询商品,添加、删除商品和保存商品等功能。但此应用目前不支持 AI 大模型的操作,比如打开智能助手,发送的信息不会正确执行。对接 TinyVue Next 智能框架的相关包,给 Select、Grid 等组件添加业务描述后,让智能助手等功能可以遥控操作网页。

OpenTiny的博客 943

搭建 OpenTiny 组件库的 Playground 指导手册

本文通过实操教程,教你如何从0到1搭建OpenTiny项目中TinyVue组件库的playground,

OpenTiny的博客 901

OpenTiny 体验官实操活动 | 快速体验 TinyVue 组件库的智能化交互能力

通过体验基于标准 MCP 协议的 Web 智能组件库——TinyVue,开发者可以了解 AI 智能体控制 TinyVue 智能组件的各类行为。本次实验主要是在 TinyVue 官网上,开发者能够通过 AI 对话框,以语音或文字方式与网站组件进行互动,并且还能借助 VSCode Copilot、Cursor 等 IDE 工具,Dify、Coze 等智能体平台来操作这些组件。通过 AI 对话框操作组件(如表格、电商管理页面)。使用手机遥控器进行语音交互。

OpenTiny的博客 908

新手适合用什么Vue组件库?TinyVue组件库好用吗?

最近 TinyVue组件库的热度也是持续上升,怀揣着这个疑问,作为新手的我便尝试了一下使用这个组件库。Ant Design 的 Vue 实现,组件的风格与 Ant Design 保持同步,风格俏皮简约,更适合用过 ant design 的 react 框架组件库的童鞋。整体感受下来还是很流畅的,在官网给出的多个组件示例中,API 的设计看起来也都友好合理。常规支持:多语言、自定义主题、按需引入、内置过渡动画 ,文档详细,组件齐全。开箱即用的多语言组件库,支持单独配置和升级,Vue2 和 Vue3 都适配。

LLI025的博客 862

华为开源项目OpenTiny的TinyVue组件库适用于哪些地方?

组件库目前是有80+的组件,1500+组件API接口,同时其中Table、Tree、Select等高频组件均内置虚拟滚动,在10万大数据场景下保持丝滑体验。所以其实相对于其他组件库的话,性能还是非常高的。第三个就是可以支持大屏系统,提供多种页面模式,轻松点击即可生成页面结构,同时不断添加新的图表组件,包含A-Charts等,只需要简单拖拽,少量设置即可完成页面搭建。第四个就是可以支持工业制造系统,可支持多种页面布局,通过可视化图表集成控制工作台各个场景业务,让使用者直观了解业务数据情况,进行智能分析。

ihhhh1的博客 1517

OpenTiny Vue 3.14.0 正式发布,增加了 MindMap 思维导图等3个新组件

业界组件库一般都会提供 unplugin 自动导入插件,开发者只需要在 vite/webpack 中配置下这个插件,就可以直接使用组件库中的组件,无需手动导入,并且组件是按需导入的,不会增加项目的产物包体积。比较粗暴的方式就是显示一个空白页,用户只能傻傻地盯着这个空白页,等待数据展示,如果长时间没有显示内容,用户不知道发生了什么事情,可能会比较焦虑,从而关闭页面,放弃访问,并对这个网站产生不好的印象。有了细粒度模式,我们的 Skeleton 组件就有了无限的组合,可以自由拼接出任意形态的骨架屏。

OpenTiny的博客 2122
上一篇: OpenTiny Vue 组件库实现主题配置和UX交互规范自定义
下一篇: zone.js由入门到放弃之一——通过一场游戏认识zone.js
OpenTiny社区
博客等级 码龄4年 1540粉丝 266原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值