
React JSX 以代码精炼著称,但 XML 又没有版权,各种框架纷纷效仿。
JSX 是 JS 里嵌套 HTML 标签,和 PHP 的 HTML 标签里嵌套代码,两者有点殊途同归的感觉。
前端发展了那么多年,最终还是没能逃出 PHP 语法的影子嘛。
有人会说 PHP 是后端语言不一样,但其实随着这些年 WASM 普及,前端早就可以嵌入 PHP 了。
1 Rrrrrr 2021-06-18 16:04:54 +08:00 ??? |
2 murmur 2021-06-18 16:06:27 +08:00 jsx 代码精炼?笑了,跟模板还差一点,完全是开发者偷懒,然后搞出一堆所谓借口,然后被前端一顿吹 vue 支持 jsx,vue 里写的是 class 不是 className,从亘古开始,html 里写的就是 class,什么时候写过 className |
3 murmur 2021-06-18 16:07:58 +08:00 *vue 就算是 jsx 语法写的也是 class |
5 3dwelcome OP |
6 murmur 2021-06-18 16:11:49 +08:00 @3dwelcome jsx 是标准 js 和 html 语法么,不是,需要 loader 么,需要 既然需要 loader,为啥不多做一点 和 html 一样的语法,模板 if 、模板 for,这些东西属于可以不用,但是必须得有 |
7 shintendo 2021-06-18 16:17:57 +08:00 缓缓打出一个问号,嵌后端代码和嵌前端代码是一回事吗…… |
8 3dwelcome OP @murmur 模板 IF/FOR 都是对于 HTML 模板的扩展,又不像 JS 有标准可循,大厂都希望发明自己的语法,毕竟 VUE 距离一统天下,还很遥远。 而且代码写好后,大部分人都懒得修改。很多年后你的 VUE 模板写法也许跟着框架升级变了,可是 JS 是不会变的。 |
9 U7Q5tLAex2FI0o0g 2021-06-18 16:20:10 +08:00 是是是,你说的都对 |
10 Leviathann 2021-06-18 16:25:28 +08:00 via iPhone 后端语言明显是被 xml 搞恶心了 以至于开发的用来写页面的 dsl 都刻意避开 xml 比如 kotlin 和 rust |
11 sunjourney 2021-06-18 16:25:34 +08:00 @murmur #6 半桶水说话就不要这么自信了好么 |
12 ragnaroks 2021-06-18 16:36:09 +08:00 不是 jsx 大火,是模板引擎 |
13 shintendo 2021-06-18 16:36:29 +08:00 @3dwelcome 大家都是 render funtion 的语法糖,大家也都不是标准,为啥一个就比另一个移植性高了 |
14 3dwelcome OP |
15 ragnaroks 2021-06-18 16:54:59 +08:00 |
16 ragnaroks 2021-06-18 16:56:14 +08:00 sof 上有如何使用 react 和 vue 编写油猴脚本的教程,你自己搜看下就明白了 |
17 Jirajine 2021-06-18 16:57:51 +08:00 via Android 这个真不一样,最大的区别是动态化。后端语言里套的是模板,数据更新了就得重新请求整个页面。而 jsx 写的是交互式、响应式的完整应用。 |
18 Shy07 2021-06-18 17:02:50 +08:00 via iPhone “ JSX 是 JS 里嵌套 HTML 标签,和 PHP 的 HTML 标签里嵌套代码,两者有点殊途同归的感觉。” 楼主再仔细想想真的是殊途同归,而不是背道而驰? |
19 mxT52CRuqR6o5 2021-06-18 17:03:33 +08:00 via Android 一个是拼字符串,一个是语法糖,差多了 |
20 AV1 2021-06-18 17:30:13 +08:00 如果你觉得“殊途同归”,那就说明你肯定也不懂 Object 和 JSON 的区别。 |
21 3dwelcome OP @Jirajine "后端语言里套的是模板,数据更新了就得重新请求整个页面。" 时代变了,你可能不太清楚,现在 HTML 可以和 PHP 混写。 <script type = "text/php"> <?php echo "Hello, world!";?> </script> 只需要 npm install php-wasm, 就那么简单 |
22 Jirajine 2021-06-18 18:44:31 +08:00 via Android @3dwelcome 这样用显然不是“后端语言”。 nodejs 和浏览器里的 js 是不同的东西。 |
23 wanguorui123 2021-06-18 19:02:07 +08:00 via iPhone 我最讨厌在 XML 里写一堆判断和控制逻辑语法,JSX 这种代码堆久了,写法不克制,维护只会越来越麻烦 |
24 Desiree 2021-06-18 19:43:46 +08:00 引战帖,鉴定完毕 |
25 otakustay 2021-06-18 19:52:26 +08:00 @murmur 那啥,jsx 不需要 loader,需要 babel 插件……你可别说得好像用些 ES 的新语法也要 babel-loader 最后为什么 ES 不多做一些 |
26 akira 2021-06-18 21:35:36 +08:00 和 php 没啥关系,以前的 asp jsp 还不是一样的各种 html 到处飞。 只能说,人都是趋于偷懒的写法的 |
27 Cbdy 2021-06-19 15:50:41 +08:00 @murmur 一方面,自古以来没有写过 className ?那 HTMLElement.prototype.className 是啥? HTMLLabelElement.prototype.htmlFor 是啥? 另一方面,React 的 JSX 用 class 不能用吗?可以用的大兄弟,React 没有规定一定要用 className |
28 shilianmlxg 2021-07-16 15:13:17 +08:00 又想到之前认识一个“大佬” 因自己写 jsp 所以自己的职位定义的是全栈 |