V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  FrankFang128  ›  全部回复第 75 页 / 共 278 页
回复总数  5541
1 ... 71  72  73  74  75  76  77  78  79  80 ... 278  
@binux 后端渲染就是我说的前后不分离
@scott1743 谁。。
@jarlyyn React 怎么跟 jQuery 结合……我真没听说过, jQuery 又不能操作 Virtual DOM
不是人用偏了,而是用了 React ,你就没法用以下东西了
1. HTML ,你只能在 JSX 里使用 HTML
2. DOM API (jQuery), https://discuss.reactjs.org/t/jquery-with-react/683
3. CSS ,用也可以,那就「不函数式」了
4. 开发者工具,你需要使用 Facebook 提供的开发工具(这酸爽)
@jarlyyn 没有取代 HTML 么,你看看用了 React 的项目里有没有 HTML 文件…… 全是 JSX ( JSX 里面的 HTML 只是语法糖,不是 HTML ,最终变成 JS )

React 是前后分离的典型——全盘采用 Client Render 。

后来 React 被吐槽,于是 React 说我支持 Server Render 好了吧。

然后你再去看看 Server Render 出来的页面……各种标记各种 Hack 。你写的 HTML 跟浏览器里的 HTML 根本不一样。

还是那句话, 98%的页面都不是复杂页面,只有那些以前用 EXTjs 的页面才是复杂页面,比如 OA 、 ERP 、 CRM 、在线 IDE
@breeswish 不用分离,发个 AJAX 返回一段 HTML 不就行了。其实返回一段 JS 更好( server javascript response ),不过考虑到很多前端没了解过,就不说了。
@jarlyyn 我之前的帖子吐槽过了,我就是看不惯现在的前端框架把原生的东西都跟否决了。

Virtual DOM 什么鬼,为了函数式而函数式,为了状态机而状态机。很说原生 DOM 渲染慢,那个用户手那么快能在 1 秒内频繁操作 DOM 。
CSS in JS 什么鬼,把 CSS 的伪类、继承都不要了,仅仅为了一个所谓的模块化。搞得好像以前的页面 CSS 都没有模块化似的。
JSX 又是什么鬼,搞得我写得 JS 都不能直接放在浏览器运行。
@jarlyyn 是的,要去服务器拉,但是又不想拉太多 API 。所以 Facebook 又发明了 GraphQL
@jarlyyn React 排斥 HTML 、 DOM 、 CSS 。把所有东西变成 JS 。像是一个 Hack 方案,不是一个好方案。
@jarlyyn 你用一个 jQuery Form Alert 之类的插件不就好了么。 JS 的地位永远只是『修饰』 HTML
@jarlyyn 我默认把 Redux / FLUX 等同于 React 来讲了。你用 React 必须有一个 Store ,那不就是 Model 吗,这个 Model 跟服务器不一致了你怎么办。
@breeswish 98%的页面都是 WebPage ,我认为。所以 React 现在这么火,是不正常的。
@jarlyyn 用 jQuery 插件提示或者跳页面。
JS 没有处理数据,因为 server 才是数据处理者。 JS 只做了正则校验。 JS 不做校验都行,因为 server 一定会校验。
如果你全给 JS 来处理,你 server 的数据校验依然不能省略—— 这时你分别在浏览器和 server 做了两次数据处理。
没有更新整个 HTML 啊。
@42thcoder 我刚开始接触 Turbolinks 的时候,发现 React 不就是一个客户端的 Turbolinks 嘛,思路一致的。
但是 React 自己在浏览器端维护 Model 和 View ,让我觉得太过了。
@jarlyyn 你的概念和我是一致的。
我主张不要让客户端做渲染。要让 server 来渲染。
@42thcoder 我觉得没必要具体提 Turbolinks ,毕竟很多前端没接触这个。
@jarlyyn 可以呀,只要不做客户端渲染,全走 server 渲染,就是前后端不分离。 API 的设计该怎么设计都可以。

一个四个 API
get /settings
post /settings1
post /settings2
post /settings3

页面上的 JS

$('form[name=settings1').on submit
--post /settings1, {accetp:'json'}
$('form[name=settings2').on submit
--post /settings2, {accetp:'json'}
$('form[name=settings1').on submit
--post /settings3, {accetp:'json'}

有啥问题

前后不分离
@jarlyyn 现在的全栈 Web 框架,都会融合 form 提交和 Ajax 提交了,比如 pjax 技术方案。
只有在以前那些老旧的 Web 框架里,才会不用 Ajax
我说的前后分离,是把『是否全盘采用浏览器渲染』作为主要判断依据。
@jarlyyn 如果你的路由是 RESTful 风格的,应该尽量做到一个页面表示一个资源。

具体到 V2EX 设置页面这样的,可以妥协
读取用一个页面返回三张表的内容,
POST 的时候用三个 form 提交。

这个只是风格问题,看起来不优雅。

假设你做成全走 API 的模式,
那么读的时候,用 AJAX 取三个 API 的 JSON
写的时候也是分三个 AJAX

实质上并没有提速(反而减速了,因为一个 HTML 请求变成了一个 HTML 三个 AJAX )。只是看起来条理清楚了
一个页面操作多个表,传统开发方式没有问题的。
1 ... 71  72  73  74  75  76  77  78  79  80 ... 278  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1806 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 00:02 · PVG 08:02 · LAX 16:02 · JFK 19:02
Developed with CodeLauncher
♥ Do have faith in what you're doing.