![]() | 1 twofox 2023-06-13 16:46:25 +08:00 ![]() react 在输出前端代码的同时,引入了一套很好用的管理方式,组件库丰富,操作 DOM 方便 jsp 要是实现一大堆花里胡哨的点击效果,还不是得引入其它的 js 的包。 jsp 就是垃圾玩意(接手了一个 jsp 项目的 javaer 的怨念 |
![]() | 2 sentinelK 2023-06-13 16:53:20 +08:00 ![]() 他们只是对 HTML 富文本的处理方式相似而已,剩下的完全都不同。 1 、对于 HTML 的处理位置不同。 2 、对于变量与逻辑的依赖流程不同。 3 、支持硬件的范围也不同。 btw:横向比较要同位比较,不能只比较形似。jsp 主要解决的是什么问题? React 又在解决什么问题? 你家里的电水壶与核能发电厂,其实本质上都是烧热水。所以用电烧水来发电也可行,只是燃料变了。 |
![]() | 3 iminto 2023-06-13 17:04:03 +08:00 |
![]() | 4 tool2d 2023-06-13 17:08:07 +08:00 作为传统码农,更喜欢 JSP ,一行就是一句代码,便于修改。 JSX 没有配上合适的编译器,都不太好上手。现代前端开发效率是靠,但是隐藏细节,也比以前多很多。 代码好不好。只看人,不看技术。 |
5 wangxiaoaer 2023-06-13 17:12:12 +08:00 via iPhone 在渲染这个层面 jsx 和 jsp 没有本质区别。只是 jsx 在渲染的同时附带了状态变化重绘和前端交互等能力。 |
![]() | 6 xhinliang 2023-06-13 17:21:00 +08:00 ![]() 说得很好,下次别说了 |
![]() | 7 leegradyllljjjj 2023-06-13 17:29:09 +08:00 via Android 啥时代了 |
8 Jirajine 2023-06-13 17:32:16 +08:00 你忽视了最关键的,React 为什么叫 React ,reactivity 才是它最重要的核心和特色。 |
![]() | 9 AV1 2023-06-13 17:45:37 +08:00 HTML:明明是它们像我呀 |
![]() | 10 chendy 2023-06-13 17:48:23 +08:00 ![]() 一来 jsp 没淘汰(存量的 jsp 项目其实很多很多),二来 jsp 淘汰也不是前后端分离带来的,就算不前后端分离 jsp 也没有模板引擎好用(想在 jsp 里写 java 代码另说) 不能因为像就把俩东西这么比较吧,那岂不是可以写一段 c 的 if-else ,再写一段 java 的 if-else ,两边几乎一样,是不是也可以比较了? |
11 cp19890714 2023-06-13 21:41:01 +08:00 使用数据对模板进行渲染, 所有的模板框架都是这个样子。 你的认识太表层了。 |
![]() | 12 learningman 2023-06-13 21:44:13 +08:00 感觉都是跑在 CPU 上的机器码,实在是没有什么区别啊 |
![]() | 14 duan602728596 2023-06-13 23:13:47 +08:00 ![]() 1. React 不是 template ! React 不是 template ! React 不是 template ! <div>Hello</div>编译后是 React.createElement('div', null, 'Hello')。是 js !是 js !是 js !所以才能添加各种 event 事件,才能各种无缝使用 js 语法。写 jsx 其实就是写 js 代码,只不过是 React 自动创建帮你 dom ,不用你手动 document.createElement 和 element.appendChild 。template 输出的是字符串,所以各个语言的 template 都不好写交互。 2. JSX 不只是输出 html ,输出什么取决于最后怎么渲染,比如 react-dom 或者 react-dom-server 或者 react-native 或者小程序。一套代码用不同的东西最后渲染出来的是不一样的。 3. JSX 不是只给 react or vue 用的。 4. 所有的编译器对 jsx 的编译是差不多的。 |
![]() | 15 tool2d 2023-06-13 23:20:00 +08:00 @totoro52 "那要是多了,才叫痛苦,维护系数直线上涨。" 也还好了,out.write 只是最初级的。可以加各种模板引擎,加上后就没那么难维护的。 最难维护的,是一大堆复制粘贴代码。仅仅是代码量上去了,还是有办法降低耦合程度的。 |
![]() | 16 zhangk23 2023-06-13 23:22:23 +08:00 jsp 这种中古技术早就死了 |
![]() | 17 lisongeee 2023-06-13 23:34:45 +08:00 @duan602728596 > 所有的编译器对 jsx 的编译是差不多的。 不一样的,主要分为两大类 一种是 react 这种编译为 vnode 形式,然后和对应的平台库使用 另一类是 solidjs 这种直接在编译期静态分析 jsx 编译为原生 dom 操作,不同的平台的编译选项不一样 |
![]() | 18 ixixi 2023-06-13 23:58:04 +08:00 ![]() 这能比吗 ? 完全不是一码事 |
19 dcsuibian 2023-06-14 00:09:37 +08:00 完全不是一回事 jsp 只是在拼接字符串,并没有解析,只不过是你拼成了一个 html ,最终被浏览器解析。而 jsx 是 xml ,在开发过程中就是有解析的 |
20 kachu673 OP 讨论的真精彩 |
21 YuJianrong 2023-06-14 03:45:59 +08:00 via iPhone jsp 对比 jsx ,就和 java 对比 Javascript 一样。 粗一看有点像,基本语法都差不多。 深挖进去一点都不同。 说渲染层面一样的,那所有程序说到底都是一个图灵自动机呢,有意义吗? 最后,就光一个 security 问题,已经可以说 jsp 装配技术不好了,这还有啥好想的。 |
![]() | 22 HaroldFinchNYC 2023-06-14 07:53:10 +08:00 为什么前端在 react 和 vue 发明之前不是一个正经的职位? 你想想 |
23 shaozelin030405 2023-06-14 09:09:33 +08:00 更像 php 哈哈啊哈 |
24 onceyoung 2023-06-14 09:16:24 +08:00 你也说了,“很像”,人和黑猩猩也很像,但很像就只能是很像…… |
![]() | 25 wakarimasen 2023-06-14 09:16:28 +08:00 via Android ![]() 如果你看着像就是同一回事的话。那么鸭脖和鼠头看上去也挺像的。 |
![]() | 26 huijiewei 2023-06-14 09:17:31 +08:00 都是高低电位,有什么区别呢 |
![]() | 27 cheng6563 2023-06-14 09:17:43 +08:00 jsp 也没人这样写 |
![]() | 28 acerphoenix 2023-06-14 09:46:38 +08:00 现在还有人知道 jsp ,得多大了。 另外,你这不是 jsp ,是没有 jsp 时候的 servlet 。jsp 出来是伴随 JSTL,El 表达式的,还有现在的一些模板引擎,比如 velocity ,Thymeleaf 也算。 |
29 githmb 2023-06-14 09:47:27 +08:00 JSP ?依托答辩 |
![]() | 31 arewei 2023-06-14 14:11:26 +08:00 这个是啥 jsp... |
32 shyangs 2023-06-14 14:20:09 +08:00 知道你不 JSP 也不 JSX 了。 你的第一只能算 Servlet 。 JSP 就算不 JSTL ,EL 表式,也要 Scriptlet Element 吧。 |
33 kachu673 OP @acerphoenix JSP 被编译成 java 源文件时,里面的源码就是这种 out 输出。 |
34 shyangs 2023-06-14 14:26:16 +08:00 |
![]() | 35 coolzjy 2023-06-14 14:48:22 +08:00 确实是愚昧的见解。建议 jsp 河 jsx 都重学吧。 |