前后端分离,前端一定要用 NVVM 之类的,比如 vue/react 东西吗?

2020-04-23 14:10:03 +08:00
 youcanwin8099

做 web 后台管理程序(CRM 之类的),用 jquery+bootstrap 能否一样做到前后端分离?

就是不让后台的 java 接口来输出 html+jquery+bootstrap,而是前端 html+jquery+bootstrap+css 读取后台 java 接口。

有这种类型的、比较典型的、也比较流行的框架吗?

9928 次点击
所在节点    Vue.js
92 条回复
onfuns
2020-04-23 14:17:01 +08:00
前后端分离意思就是前端干前端的活,后端干后端的活,调接口时才会交集。至于前端你想要什么技术栈就用什么技术栈,不想用三大框架,用 js api 自己一点一点敲没人管,关键要是工作上就得考虑技术栈了,工作是要提高效率的,怎么快就要怎么来!
alertZ
2020-04-23 14:19:20 +08:00
我以前做前后端分离是使用 ng 来做,后面就从简直接使用 JQ 的 ajax 来实现接口调用,然后在配合 webpack 降低文件大小和提高代码复用率
youcanwin8099
2020-04-23 14:25:05 +08:00
@onfuns 用 js api 就一定会一点一点敲,从而比三大框架效率低吗?那 jquery+bootstrap 听上去也很有名啊!
youcanwin8099
2020-04-23 14:25:20 +08:00
@alertZ 什么是 ng ? node js?
kaiki
2020-04-23 14:27:34 +08:00
试试 art-template ?
alertZ
2020-04-23 14:28:21 +08:00
@youcanwin8099 ng:angular 。与 vue 和 react 同名的另外一个框架。
youcanwin8099
2020-04-23 14:30:53 +08:00
@alertZ ,你后面”后面就从简直接使用 JQ 的 ajax 来实现接口调用“,那是否已经不用 angular 呢?如果不用,怎么还要搞什么 webpack?
aogu555
2020-04-23 14:31:34 +08:00
不是的,之前接手过一个老的 jq 项目,前端部分用基于 jq 的 layui,ajax 请求到数据后主要依赖模板引擎来渲染数据,虽然是前后端分离,但是个人认为效率是远不如现在的 vue/react 高的,生态方面也完全比不上,大人,时代变了。
NotFamous
2020-04-23 14:33:17 +08:00
前后端分离跟用什么技术栈没关系的, 在前端来说就是写好 HTML/CSS/JS, 后端写好接口(用来返回数据), 然后前端要展示数据或者执行操作的时候就调用接口用来获取数据或者执行操作.
相应地, 举个我们公司.Net 的例子~前后端不分离的就是那种后端返回一个 View(页面文件是 cshtml )的吧,,,纯粹只是一种例子, 毕竟我对后端不熟悉
gz911122
2020-04-23 14:33:20 +08:00
不一定要用 vue 之类的, 你想用啥用啥...

前后端分离只是从返回 html 变成了通过 api 交互而已
agdhole
2020-04-23 14:34:55 +08:00
是的,jQuery 效率会低一万倍
GDC
2020-04-23 14:35:04 +08:00
@youcanwin8099 webpack 和 angularjs 都是可以单独使用,或者搭配其它使用的,并不是缺了 angular 就用不了 webpack
onfuns
2020-04-23 14:36:22 +08:00
@youcanwin8099 jquery 是封装的三方库啊,方式千千万,自己私底下搞搞想用什么就用什么咯,但是公司级的要综合考虑,比如要是传统企业比如面向 zf 单位的,用 react/vue 也行不通啊,人家还有 ie789 呢,所以要看实际场景了。jquery+bootstrap 这种现在国内少了点,一般外包在用,因为模板多啊。
huijiewei
2020-04-23 14:37:29 +08:00
不用 mvvm 是跟自己过不去吗
ugu
2020-04-23 14:38:03 +08:00
jquery+ bootstrap 最大的问题就是操作 dom 繁琐且性能低下,不然数据驱动试图的概念出来干啥?可以这么说,没有 mvvm 降低操作 dom 的成本,前端实现富应用根本不现实,例如你用原生 js 去写一个复杂交互的应用试试,前期实现成本和后期维护成本够你喝一壶的
ipwx
2020-04-23 14:38:38 +08:00
你可以不用这些框架,但是用了以后,你会感觉,“真香”
angmieee
2020-04-23 14:41:09 +08:00
怎么都可以,但是你确定确定要用 jQ 操作 dom 吗?
JerryCha
2020-04-23 14:41:18 +08:00
真的勇士,敢于抛弃一切框架手操 DOM 、手撸 XMLHttpRequest
red2dog
2020-04-23 14:45:19 +08:00
看业务场景。
biguokang
2020-04-23 14:45:26 +08:00
理论上,不用 mvvm 框架和 webpack 打包工具,纯原生手撸 js 你也能前后端分离,只是,写起来艹蛋,维护起来也艹蛋,结构组织起来也艹蛋。。。。。


为什么艹蛋呢,因为你需要不断地手动创建、修改、删除 dom 节点,如果项目极小那还没所谓,要是项目大起来,你会哭的。

比如说你用 jquery 来 ajax 后端的数据,渲染在前端,那么你要做的就是把数据 ajax 过来,然后你在某个 dom 节点上创建一个 dom 节点,然后用 innerText (我不是很熟 jq,我只会原生)把数据插进去。。。。哦,你是一个列表数据,那就根据数据的长度,循环创建多个 dom 节点然后一个个把数据插进去。。。哦你还涉及条件渲染,那就需要判断哪些节点需要插哪些不需要,什么你还需要给一个个节点绑定一个 click 事件?慢慢来吧。。。。

如果是用 mvvm 框架,只需要在 template 的某个节点搞个双向绑定,把 ajax 来的数据赋给对应的 data,然后就 ok 了他会自己渲染了。。。

mvvn 的好处就是不需要你去一个个操作 dom 节点,因为操作 dom 节点的工作交给了虚拟 dom 去处理,你需要做的只是对着框架的 api 做各种操作而已,工作起来效率也会很高。


举个例子,b 站前端就是用 vue 写的,但是你试试不用框架直接手撸 jq 去搞,不是写不出来,而是工作量会很大很大维护起来很麻烦很麻烦

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/665319

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX