腾讯 QMUI 团队 Web 前端框架正式发布
发布于 5 个月前 作者 kayo5994 1076 次浏览 最后一次编辑是 4 个月前 来自 分享
官网预览

QMUI Web

一个旨在提高 UI 开发效率、快速产生项目 UI 的前端工作流,由腾讯 QMUI 团队出品

Github:https://github.com/QMUI/qmui_web

QMUI Web 是一个专注 Web UI 开发,帮助开发者快速实现特定的一整套设计的框架。通过 QMUI Web,开发者可以很轻松地提高 Web UI 开发的效率,同时保持了项目的高可维护性与稳健。如果你的项目需要有一套完整的设计,并且可能有频繁的变动,那么 QMUI Web 框架将会是你最好的解决方案。

功能特性

基础配置与组件

  • 通过预设的 SASS 配置表和公共
  • 组件快速实现项目的基本样式

SASS 与 Compass 支持

  • CSS Reset
  • 大量封装处理好浏览器兼容的原生 SASS 方法
  • 各种数值计算和获取方法,方便约束 UI 统一
  • 实现如 border 三角形等效果的各种方法
  • 工具类(清除浮动,多行省略号等)

脚手架

  • 利用 gulp 监控代替不稳定的 Compass Watch
  • 模板引擎,强化 html 能力
  • 图片集中管理与图片压缩
  • 文件清理
  • 静态资源文件合并与自动变更

扩展组件

  • 雪碧图组件
  • 等高左右双栏
  • 文件上传按钮
  • 树状选择菜单

环境配置

#安装 gulp
npm install --global gulp
#安装 SASS 
gem install sass
#安装 Compass
gem update --system
gem install compass

为什么采用原生 SASS 和 Compass?

快速开始

推荐使用 Yeoman 脚手架 generator-qmui 安装和配置 QMUI Web。该工具可以帮助你完成 QMUI Web 的所有安装和配置。

#安装 Yeoman,如果本地已安装可以忽略
npm install -g yo
#安装 QMUI 的模板
npm install -g generator-qmui
#在项目根目录执行以下命令
yo qmui
效果预览

完成后生成的项目目录结构

项目根目录
├─public          // 静态资源目录,由 Compass 和 gulp 生成
│  ├─js           // 静态资源 js 文件
│  └─style        // 静态资源 UI 文件
│     ├─css       // 静态资源 css 文件
│     └─images    // 静态资源 images 文件
├─UI_dev          // 实际进行开发的样式目录
│  ├─project      // 项目相关 SASS 与 images 文件,由 gulp 生成
│  │  ├─images    // 项目相关图片文件
│  │  ├─logic     // 项目相关逻辑样式
│  │  └─widget    // 项目相关公共组件样式
│  └─qmui_web     // QMUI Web 主源码应放置在这一层目录
├─UI_html         // 静态模板目录,用于 UI 工程师开发
└─UI_html_result  // 静态模板 gulp 处理后的版本,用于前端拼接最终的模板

对于需要有更强定制性的开发者,请参考创建新项目(高级)

其他说明

推荐配合桌面 App:QMUI Web Desktop。它可以管理基于 QMUI Web 进行开发的项目,并提供了编译提醒,出错提醒,进程关闭提醒等额外的功能。

QMUI Web Desktop

意见反馈

如果有意见反馈或者功能建议,欢迎创建 Issue 或发送 Pull Request,感谢你的支持和贡献。 QMUI 团队

6 回复

看来不错。不过比 bootstrap 等有突出的优势么?

@leapon 与 Bootstrap 相比,本质上其实不是同一类型的框架,Bootstrap 这类框架自带完整 UI 组件,可以快速实现页面,而 QMUI Web 并不用于快速搭建界面,而是基于项目设计师的设计稿,快速实现这个设计稿。因此 QMUI Web 实际上是一个“UI 工厂”,它本身只提供少量的 UI 元素,更多的是帮助开发者实现特定的一整套设计,从 Sass 的 mixin 合集以及配置表的形式,再到工作流内置的任务都是为了快速生成需要的 UI。

关注中,加油!

@artgou 谢谢,可以提提建议,共同完善!

树型菜单怎么实现带checkbox ?

@yakczh 我们这边常用的有两种方案。一是 checkbox 放在 item 的前面,这种方式比较容易实现,例如以框架文档中的树型菜单为例,在 .dm_treeMenu_item 这一层增加一个最前面的子元素 checkbox 即可,缺点时横向滚动条往右移动时,会把 checkbox 移走;另一种方案是在 item最后增加一个子元素,缺点是为了防止内容过长文字内容的 span 需要做过长省略号保护。具体用哪种看实际需要了。

回到顶部