各位现在新开的项目是采用前后分离,还是采用视图模型返回? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MikeLei
V2EX    问与答

各位现在新开的项目是采用前后分离,还是采用视图模型返回?

  •  
  •   MikeLei 2019 年 11 月 1 日 2534 次点击
    这是一个创建于 2353 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小白一个,前面开发一直用原生 ajax 来进行前后端分离,但是感觉前端会很囊肿,前端需要处理很多逻辑(登录状态,是否能够浏览某个 html 界面,等等),感觉前端需要做的事情实在是太多了。

    尝试过视图模型返回,部分地方用着确实爽,不用去管繁杂的 json 返回结果,但是感觉用了视图模型在前端效果 Js 就不好写了,很多效果,不知道应该怎么实现,怎么触发

    各位大佬可以探讨一下是完全靠前端请求接口,后端完全不管前端是什么表现形式(网页,APP ),还是靠渲染视图模型来开发,这两个哪个最爽,效率最高,后期维护还舒服?

    背景:小公司,小项目,Spring Boot,jQuery 一梭子到底型前端,全干型程序员。

    17 条回复    2019-11-02 09:08:41 +08:00
    Caballarii
        1
    Caballarii  
       2019 年 11 月 1 日
    纯 jquery 搞前后端分离吗。。。好狠啊
    lxk11153
        2
    lxk11153  
       2019 年 11 月 1 日
    前后分离是趋势,交互只传数据。
    VUE 视图与数据绑定 这样也是趋势
    MikeLei
        3
    MikeLei  
    OP
       2019 年 11 月 1 日
    @Caballarii 前端一直是短板,VUE 之前看过一点,那时候一直用的 jQuery ajax 求接口来拼拼改改页面,所以不太能理解 VUE 的运行逻辑,现在回头看能理解很多了,VUE 有机会还是要抓起来再学学的。

    @lxk11153 也就是视图模型交给了 VUE 去处理?后端按照规定格式传给 VUE 让他自动渲染就可以了?
    anmie
        4
    anmie  
       2019 年 11 月 1 日
    在不考虑项目复杂度,和 vue 的一些劣势的情况下,无脑 vue 前后端分离一把梭就行了。
    如果如上的一些问题需要考虑,那前端这边,你只能内容展示型网站 ssr,应用型网站 vue。
    然后分离的情况下,后台还有一个好处,就是你的接口不仅可以提供给网站使用,app,小程序同样可以。
    lxk11153
        5
    lxk11153  
       2019 年 11 月 1 日
    @MikeLei #3 cn.vuejs.org/v2/guide/#%E5%A4%84%E7%90%86%E7%94%A8%E6%88%B7%E8%BE%93%E5%85%A5
    比如这个,data.message 这个字段有个 reverseMessage 方法在修改,但你并没有看到 js 里去如何修改 html,js 里改了 data.message 的值,html 也相应变动了,然后页面往下一个输入框例子,你在页面输入框输入字符,js 里的变量也相应改变了值
    MikeLei
        6
    MikeLei  
    OP
       2019 年 11 月 1 日
    @anmie result 风格前后端分离也一直是我理解的模式,后端完全不用管前端的展示方式,只需要会请求 http 就可以调用,但是我现在疑惑的是,如果这样写前端的任务量是不是太大了,基本上等于后端只需要负责输出数据,和校验请求的合法性,其它什么都不用管了。而前端它需要管理登录状态,管理页面访问,取出 Json 用于渲染前端页面,等等各种各样的逻辑,难道这些逻辑本身就应该属于前端的范畴嘛?

    还是说我写法有问题?有更简便的方法?
    MikeLei
        7
    MikeLei  
    OP
       2019 年 11 月 1 日
    @lxk11153 嗯,我大概看明白了。有空要深入研究一下。然后还有一个问题要请教您,像 LayUI,FinUI,这种填鸭式的前端框架还能与 VUE 融合吗?感觉用了框架以后就多了很多很多局限。
    MAIQ
        8
    MAIQ  
       2019 年 11 月 1 日
    全干,怎么方便怎么来。我也是全干,后端依旧渲染视图和处理逻辑;前端用 vue 负责界面,不用写一坨一坨的 js,工作量少很多
    lxk11153
        9
    lxk11153  
       2019 年 11 月 1 日
    @MikeLei
    #6 所以 vue 就是来简化处理咯,比如说列表渲染 cn.vuejs.org/v2/guide/list.html
    #7 vue 是数据层的,你说的 UI 是样式层的,基本的控件没问题,自定义控件的话看如何实现要具体分析了;基于 vue 的也有很多 UI 框架的。搜一下就行
    hyy1995
        10
    hyy1995  
       2019 年 11 月 1 日
    楼主好像觉得,前后端分离之后,前端需要写的逻辑多了,任务量大。



    实际上也是这样的,现在的前端早已不是当年的切图仔了。。。
    zaul
        11
    zaul  
       2019 年 11 月 1 日
    换 VUE 吧,用习惯了你会把 JQ 彻底抛弃,毫不犹豫
    zaul
        12
    zaul  
       2019 年 11 月 1 日
    开发效率也会变高的
    stillyu
        13
    stillyu  
       2019 年 11 月 1 日 via iPhone
    jquery 拼 html 字符串不觉得累吗?也不好维护。 换 vue 吧,你会爱上的,一两天就能上手了
    nekolr
        14
    nekolr  
       2019 年 11 月 1 日
    Spring Boot + vue 一把梭,再用 jquery 头发都掉了。
    nekolr
        15
    nekolr  
       2019 年 11 月 1 日
    @MikeLei UI 框架直接用基于 vue 的这种,方便很多
    weixiangzhe
        16
    weixiangzhe  
       2019 年 11 月 1 日 via Android
    就算不上 react vue 之类的也要有模板引擎才行
    anmie
        17
    anmie  
       2019 年 11 月 2 日
    @MikeLei 前后端都能做的内容,那就无所谓是属于谁的范畴,至于前端是不是做了太多的工作,只能说前端已经不是以前的页面仔了。
    而且 vue 全家桶用熟了之后,你会发现工作量并不会增加很多,更何况你自己全干,某些逻辑前端处理比后台处理还方便
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2282 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 00:51 PVG 08:51 LAX 17:51 JFK 20:51
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86