1. 用框架和库的目的是增效,如果你不需要增效那么就没必要用框架。你后面提到的 DOM 操作、数据映射、渲染更新这些操作就是在给你增效。
至于是否用 `uni-app` 之类的**跨平台框架**,就看你是否有跨平台的需求。如果没有,原生开发就可以了,会避免很多麻烦事。
比如说目标平台更新了,但是跨平台框架没有及时更新,但是这个期间你又要上新版本,那么你就得自己写一堆 `#ifdef` 去做判断。等到框架适配之后再改回来。
或者是一些小的编译导致的样式问题,Web 版本样式 OK ,但是小程序样式有问题。你调整之后小程序样式 OK 了,但因为一些 hack 写法,Web 端又有其他的问题了。
使用框架实现起来几乎不会有坑,只是一些非常细枝末节你用一份代码不做调整,想要一次性跑通的会比较折磨。
如果要考虑这种跨平台框架了,就直接看使用人数,而不是技术栈是不是“优雅”。
很多技术栈看起来非常好,但是用户群不大,叫好不叫座是非常常见的。更新慢或者 bug 修的满,等你想自己修复搜都搜不到相关的结果就懂了。
用的人越多等你踩到坑的时候,社区肯定已经有先行者淌过了,起码有一个思路指引。
2. 样式和 UI 库,也是一样的,如果你已经有一个自己的样式风格了。那么可以不用 UI 库,就自己实现。
远古时期每一个前端开发大多都有一个自己维护的 common.css ,然后自己手写项目样式。
对样式需求并不怎么高,那么就不需要考虑那么多,找一个组件清单能覆盖自己需求的 UI 组件库就好了。一般来说 UI 库都会提供一个定制化主题的指引,自己按照需求改一份出来就够用了。
对样式需求比较高,会有很多特立独行的定制化需求,可以找一个 headless 组件库。组件库只负责功能实现,样式靠自己来实现。但是小程序端我还没了解到过是否有类似的库。
-----
#4 ,使用 tailwindcss 比直接手撸的优势就是可以少写很多东西,可以不用自己定义类,快速实现栅格化布局等等的功能。
很多时候我们只是想使用 `flex` 布局,还得起一个 CSS 类名,然后到 `style` 块中去声明。使用 `tailwindcss` 就可以直接 `class="flex ..."` 这样了。
然后一些样式规范也可以一次声明,全局都可以使用到(可以理解成全局变量和样式继承)。 |