shunia

shunia

V2EX 第 51309 号会员,加入于 2013-12-05 13:51:43 +08:00
今日活跃度排名 7568
根据 shunia 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
shunia 最近回复了
12 小时 26 分钟前
回复了 tool2dx 创建的主题 前端开发 前端想要进化,就必须要摆脱浏览器这个枷锁。
@tool2dx #101 怎么又扯到 UI 编程了,write once run everywhere 是 UI 层面的概念吗?它明明依赖的是底层的渲染引擎啊?
html 的名字就说了人家是 text language ,你完全可以在任何平台之上实现一个可以渲染 html 到你想要的效果的引擎。html 本质就是 xml ,哪来的不能 write once run everywhere ?

能不能脚踏一点实地的聊点不假大空的东西!
13 小时 18 分钟前
回复了 tool2dx 创建的主题 前端开发 前端想要进化,就必须要摆脱浏览器这个枷锁。
哥们这么会说废话,应该多少也是个官吧😅

咱们搞技术的能不能整点实诚的,举个具体的例子,浏览器怎么就没能承载你写过的超大的项目?

能不能先定义一下超大,再说明一下无法承载是因为出现了什么问题?
这图都画的这么详细了,一眼看过去就应该知道接下来只能再在外面加一个数据层来进行数据管理啊?毕竟组件和组件之间的关系已经是完备的了。

用 context 确实会限制数据只能在 react 组件之间流转,但是你也没意识到一个问题,当你选择了用 react 去实现一个组件,它就已经不再是一个”通用“组件了,它本身就只能在 react 框架里流转。

如果你能把 Grid 实现为一个独立的组件,那你就必然要为它设计 API 用来向外传递数据,也就意味着你使用 Grid 的地方一定要能捕获 Grid 的输出并且把它集成到你的 App 的数据流里(如果你需要的话),也就意味着你的 App 必须要有一个数据层。此时使用 context 是完全合理的。

如果你还是觉得生理不适,必须要使用一个无依赖的数据层,react 生态里很多这种东西,比如 zustand ,但是我觉得增加的额外心智负担其实不如使用 context 。

最后再说一下那个鼓吹 Angular 的,包括说 service+rxjs 的,其实和 context 是一个性质的东西甚至更为不如。react 好歹数据层的生命周期管理的让人毫无心智负担,rxjs 则难以管理而且还要显式的销毁,否则会引发内存泄漏。service+rxjs 又完全不独立,和代码是紧密关联的,也并不符合 OP 的要求。就试问一下使用 Angular 实现和使用 React 实现,代码路径有什么区别?独立一个状态管理类,所有组件从中直接或者间接进行引用,还能有其他方法?而且早期的 Angular 没有 Inject 注解,甚至要在构造函数里传递 service 实例(至今官方示例代码依然优先采用这种写法),一旦遇到需要继承的情况就构造函数爆炸,蠢的很。而且直到最新的 standalone 组件之前,所有组件和 service 之类的都要显式的声明依赖和引用关系,傻的爆炸。组件编译出来默认 Shadow Dom alike 无法直接外部干涉,还需要每个组件显式声明不采用 Shadow Dom ,无语到让人喊娘。

最最后再提一下,脱藕 html/dom 和脱藕 React 组件不是一码事,不要想着希望自己最终产生的 html/dom 是脱藕的,就期盼着 JS/TS 代码内部也完全脱藕,不存在这种可能性呀,毕竟你的 App 内部总是有关联的,试论哪种解构方式都无法脱离耦合,只是高低的区别而已。
我以为我回到了十多年前
解决了以前要搭一个 React 的全栈项目稍微有点费劲的问题。

比如说有一个叫 T3 还是什么的一个项目就是一套全栈的脚手架,拿了巨多星,主要就是因为一个明星开发者提供了一套开箱可用且全面的全栈模板,算是解决了前端生态稍微有点混乱选择太多配置比较割裂的问题,因为他是明星开发者所以被更多人看到,虽然他的选择有很大的倾向性,但是确实解决了问题。

Next.js 就是一套更加完善,整合的更成功的解决方案。虽然它并不是唯一的选择,但是它有一些先发优势,又得到了 vercel 的大力支持从而和 React 团队搭上了线,从而一跃变成了天选之子。另外它也确实做的很不错,在获得了 React 的原生支持之外,提供了一些未必是原创但是很优秀的解决方案,比如通常比较烦人的 SEO 、图片优化等,另外从开发者角度投入了非常大的精力做优化比如文件路由、文件目录层级优化等。

不过这玩意比 React 激进太多了,从我自己使用的过程和体验来说,感觉 vercel 还是把它当成一个孵化中的项目,并没有真正的稳定下来。
什么概念?之前经手的开发人员都非常的稳重!
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4585 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 04:01 · PVG 12:01 · LAX 21:01 · JFK 00:01
Developed with CodeLauncher
♥ Do have faith in what you're doing.