Vant Weapp 1.0 正式版发布
Vant Weapp 1.0 来了
2018 年 8 月 11 日,我们发布了 Vant Weapp 的首个版本。16 个月以来,我们收到了 27 位开发者贡献的 1000 多次提交,也处理了 1200 多个 issue,发布了 50 多个版本。Github 的 star 数从 5k 上升到了 11k,长期是 Github 上 star 数最多的第三方小程序 UI 组件库。
现在,我们很高兴向大家介绍 Vant Weapp 1.0 版本。
经过 2 个月的开发与 beta 测试,我们为大家带来了 11 个全新的组件,重构了多个现有组件,增加了覆盖所有组件的主题定制特性。并且,为了配合 Vant 家族的发展,正式将包名变更为 @vant/weapp。
一、新版本介绍
1.1 新的组件
在 Vant Weapp 1.0 版本中,我们新增了 11 个实用的基础组件:
- Grid 宫格,用于展示内容或进行页面导航
- Image 图片,增强版的 Image 标签,支持图片懒加载与加载失败提示
- Circle 环形进度条,告知用户当前的状态和进度
- Overaly 遮罩层,用于强调特定的页面元素,并阻止用户进行其他操作
- Divider 分割线,区隔内容的分割线
- Sticky 粘性布局,与 CSS 中
position:sticky
属性实现的效果类似 - Skeleton 骨架屏,在待加载区域展示的占位区块,提供界面加载过程中的过渡效果
- IndexBar 索引栏,通讯录中的字母索引栏,用于长列表快速索引
- Uploader 文件上传,上传一个或多个文件
- CountDown 倒计时,用于显示活动倒计时、短信验证码等
- DropdownMenu 下拉菜单,用于列表的分类选择、筛选及排序
1.2 样式定制
在 1.0 迭代计划确定之初,我们就不断思考这样一个问题 -- 该如何给用户提供动态切换主题样式的功能呢?
微信小程序的环境是非常特殊的。不具有动态加载代码的机制,同时微信又限制了代码的主包大小和总大小。传统的基于预设的样式定制过于臃肿,不再适合微信小程序的环境。
微信小程序自定义组件的组件模型相当于一个简化版的 Shadow DOM,幸运的是,小程序也支持了 CSS自定义属性 的特性。最终,我们基于CSS自定义属性设计了样式定制的方案,开发者使用灵活、方便,组件维护也更简单。
从 1.0 版本开始,Vant Weapp 中的所有组件都支持通过 CSS组定义属性 进行样式定制,具体使用姿势可查看更新日志。
1.3 不兼容更新
1.0 版本中包含少量不兼容更新,主要是命名调整和移除个别属性。对于正在使用 0.x 版本的项目,请按照更新日志依次检查,大部分项目可以无痛升级。
三、未来
Vant Weapp 会积极探索与腾讯云开发结合的可能性,为大家带来更好的使用体验。不久,我们将再次与大家见面。
写在最后的话
感谢社区长期以来为 Vant Weapp 提供的贡献与反馈,让我们始终与开发者站在一起。如果您在使用 Vant Weapp 的过程中遇到任何问题,欢迎在 Github 向我们反馈。
Vant Weapp 1.0 的主要贡献者为(按首字母排序):@Andyliwr @aphasic @chenjiahan @creeperdance @Eamonnzhang @Fyerl @JakeLaoyu @jerryni @kongyeah @Lindysen @linrz @rex-zsd @thoamsy @ylethe 。
相关链接
- Vant:https://github.com/youzan/vant
- Vant Demo:https://github.com/youzan/vant-demo
- Vant Weapp:https://github.com/youzan/vant-weapp
- 更新日志:https://youzan.github.io/vant-weapp/#/changelog
- 教你一招 | Python装饰器的另类用法
- 如何拿到半数面试公司Offer——我的Python求职之路
- Python编程语言发展简史
- 学完Python基础知识后,你真的会python吗?
- 一个人的武林:内网渗透测试思路(二)
- Python数据分析之股票实战
- 这货不是电源:硬件渗透测试平台 – Power Pwn
- Python进阶学习之阅读代码
- 代码安全审计:当file_exists遇上eval
- Python 异常处理完整指南
- 有趣的安全实验:利用多线程资源竞争技术上传shell
- NotSerializableException解决方法NotSerializableException
- 谁蹭了我的WiFi?浅谈家用无线路由器攻防
- 当输入流和输出流同时作用一个文件
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- leetcode队列之最近的请求次数
- 安防视频云服务EasyCVR集成海康SDK时语音对出现杂音问题,如何解决?
- arm linux利用alsa驱动并使用usb音频设备
- linux 磁盘转移空间的方法
- 详解git中配置的.gitignore不生效的解决办法
- Apache Thrift环境配置
- CentOS 7更新时出现:Multilib version problems问题的解决方法
- Linux模拟网络丢包与延迟的方法
- centos6.5通过yum安装nginx
- Linux系统利用cp命令实现强制覆盖功能的方法
- leetcode队列之设计循环双端队列
- Centos7学习之添加用户和用户组的方法
- Linux静态库与动态库实例详解
- Linux字符终端如何用鼠标移动一个红色矩形详解
- Linux中出现“No space left on device”错误的排查与解决方法