本文介绍: 官方组件使用建议是:1. 首先使用内置组件2. 然后使用uni ui扩展组件3. 其他需求依靠插件市场其他组件灵活补充

直接答案

如果想自己手写直接内置组件。如果要用ui的,可以官方uni ui

首先的原则是,uniapp移动优先。因此不适合开发PC端的应用

如果你有PC端软件开发需求应该使用electron框架

另外uni ui部分组件同时兼容pc端。比如uni-admin就是这么做的。如果只做pc考虑其他端,也可以使用任意pc ui库,比如elementUI等。

uni-ui文档如何uniapp使用elementUIvant等,请见文末

关于uni-app的ui库、ui框架、ui组件

组件的概念

组件是现代开发的重要里程碑。组件重构了分工模型,让大量的轮子出现,让开发者可以拿来轮子直接用,大幅提升了整个产业效率

uni-app是有[内置组件]的。这和web开发不一样。

web开发基本不用基础组件,都是找一个三方ui库,全套组件都包含。那是因为html的基础组件默认样式适配手机风格

但uni-app体系不是这样,内置组件就是为手机优化的。

但内置组件只能满足基础需求,更多场景需要扩展组件。

扩展组件是基于内置组件的二次封装,从性能上来讲,扩展组件的性能略低于内置组件,所以开发者切勿抛弃内置组件,直接全套用三方UI组件库。

uni-app的[插件市场],有很多扩展组件,有的是单独的,有的是成套的。
有些开发者喜欢成套的组件,但注意成套扩展组件也不可能覆盖所有需求,很多场景还是需要单独下载专业组件。

扩展组件的选择

众多扩展组件如何选择我们首先要搞清楚组件的分类

组件分2大类:1、vue组件(文件后缀vue);2、小程序自定义组件(文件后缀wxml或其他小程序平台特有后缀名称)

img

表格中可以很明显看出,更推荐使用的是全端兼容的uni规范组件。

很多人容易搞错2个问题

  1. 同样是vue组件,only for web的和全端的有什么区别
    传统vue组件,比如elementUI,都是only for web的,里面有大量domwindow对象操作。但小程序和App没有dom这些api的,自然无法跨端使用
    想要跨端,其实也不难,做一套domvue组件即可官方的uni-ui即是如此。还有众多开发者插件市场提交了更多这种类型的库。
  2. vant是分web版和weapp版的,千万别搞混
    vantweb版操作了dom,所以只能用于web端;而vant weapp微信小程序组件规范,可以用于微信、App、H5;vant自身并没有提供全端可用的无dom vue组件。

除了兼容性,在性能生态完善度层面,不同类型组件有什么差别?

  1. 性能
  2. 生态完善度
  3. 其他指标

再来看看各种成套UI的优劣分析

uni ui

DCloud官方出了一套扩展组件,即[uni-ui]。

这些扩展组件支持单个组件从插件市场下载,也支持[npm引入]uni ui,当然更方便的是在HBuilderX新建项目直接选择uni ui项目模板

uni ui有如下优势:

  1. 优化逻辑层和视图层通信折损:非H5端的各个平台,包括App和各种小程序,其逻辑层和视图层分离的,两层之间通信交互会有折损,导致诸如跟手滑动流畅。uni ui在底层会利用wxs技术,把适当的js代码运行在视图层,减少通信折损,保证诸如swiperAction左滑菜单等跟手操作流畅顺滑
  2. 自动差量diff数据:在uni-app下,开发App和小程序,不需要手动setData,底层自动会差量更新数据。但如果使用了小程序组件,则需要按小程序的setData方式来更新数据,很难做到自动diff更新数据
  3. 背景停止:很多ui组件是会一直动的,比如轮播图、跑马灯。即便这个窗体被新窗体挡住,它在背景层仍然在消耗着硬件资源。在Androidwebview版本chrome66以上,背景操作ui会引发很严重的性能问题,造成前台界面明显卡顿。而uni ui的组件,会自动判断自己显示状态,在组件不再可见时,不会再做动画消耗硬件资源。
  4. vue语法:uni ui的引用开发都是纯vue方式。而小程序组件的引用注册开发都是小程序语法,两种语法混合一个工程,写的也不舒服,维护也麻烦。
  5. 与[uni统计]自动整合比如使用uni ui的导航栏组件,就不需要统计自定义事件触发页面标题上报。uni统计会自动识别导航栏组件的标题。类似的,收藏组件、购物车组件,都可以免打点直接使用。
  6. uni ui兼容Android 4.4等低端机webview没有浏览器兼容问题
  7. uni ui支持nvue:App端,uni-app同时支持webview渲染原生渲染,而uni ui是可以一套代码同时支持webview渲染原生渲染的。为了兼容原生渲染,uni ui也做到了纯flex布局
  8. uni ui内置vue doc,使用组件时有良好的代码提示
  9. 支持[easycom]规范,使用非常简单
  10. 支持[datacom规范],云端一体全部封装
  11. 支持[uni_module规范],方便插件的更新
如何使用uni ui

在HBuilderX新建项目时,直接选择uni ui项目模板然后在代码里直接敲u,所有组件都拉出来,不用引用、不用注册,直接就用。

image-20231205160845807

img

综上,官方对组件的使用建议是:

  1. 首先使用内置组件
  2. 然后使用uni ui扩展组件
  3. 其他需求依靠插件市场其他组件灵活补充

附录:其他全端兼容ui库

插件市场https://ext.dcloud.net.cn,有各种玲琅满目的组件、模板

其中成套的全端兼容ui库包括:

参考文章

1、关于uni-app的ui库、ui框架、ui组件:https://ask.dcloud.net.cn/article/35489

2、内置组件+uni-ui文档https://uniapp.dcloud.net.cn/component/

3、uni-ui插件地址https://ext.dcloud.net.cn/plugin?id=55

4、uniapp是否可以用elementUI等前端UI库、使用步骤以及需要注意问题https://blog.csdn.net/imqdcn/article/details/134739361

5、如何uniapp中使用uviewUI-适合uniapp的ui组件:https://blog.csdn.net/imqdcn/article/details/134788775

6、uniapp是否可以用vant等移动端UI库、使用步骤以及需要注意问题https://blog.csdn.net/imqdcn/article/details/134790046

如果你在web前端开发面试前端学习路线有困难可以加我V:imqdcnn免费答疑,行业深潜多年的技术牛人帮你解决bug
另外也可接小程序、网站开发等。

祝你能成为一名优秀的WEB前端开发工程师

原文地址:https://blog.csdn.net/imqdcn/article/details/134810660

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_49643.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注