V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lixia625
V2EX  ›  Django

适合 django 的前端 mvvm 框架有哪些?

  •  
  •   lixia625 · 2015-12-10 18:30:11 +08:00 · 14347 次点击
    这是一个创建于 3275 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最好有开源项目可以学习学习。
    写 jQuery 要写吐了。
    急需要变身。
    先谢谢各位。

    29 条回复    2016-04-07 22:20:46 +08:00
    windfarer
        1
    windfarer  
       2015-12-10 18:34:46 +08:00 via Android
    其实 rest 接口的话用哪个都一样吧,先试试 angular ?
    lixia625
        2
    lixia625  
    OP
       2015-12-10 18:45:41 +08:00
    @windfarer
    然而这是在一个有一定规模重构无力、有严重 django template 依赖的项目背景下,
    想逐步的脱离 jquery 这种模式,是否可行
    heian0224
        3
    heian0224  
       2015-12-10 18:53:22 +08:00 via Android
    试试 vue?
    restran
        4
    restran  
       2015-12-10 18:59:02 +08:00
    vue +1
    hantsy
        5
    hantsy  
       2015-12-10 19:00:37 +08:00
    前后分离, REST API 交互。

    前端使用 SPA 模式,根本不用关心后面端是什么语言实现。

    https://github.com/hantsy
    lixia625
        6
    lixia625  
    OP
       2015-12-10 19:02:38 +08:00
    @heian0224
    刚刚想说这个,正准备按官方教程上手,首先就来个大括号冲突,
    跑去一搜(并不是百度),我擦,基本没有多少 django+vuejs 相关的信息。
    lixia625
        7
    lixia625  
    OP
       2015-12-10 19:02:54 +08:00
    @restran 同上
    lixia625
        8
    lixia625  
    OP
       2015-12-10 19:04:31 +08:00
    @hantsy
    这个大概知道,问题是现在不可能全部推翻重来,在现有的项目基础之上怎么做前后端分离(主要是原来的东西依赖模板,分不出来啊)
    timonwong
        9
    timonwong  
       2015-12-10 19:31:51 +08:00   ❤️ 2
    我们用的是 AngularJs ,流程目前是走 Gulp + Browserify (所有的 templates 都会编译为 js ,不走 HTTP 请求),短期内会替换为 webpack

    API 用的是 django-rest-framework ,由于我们没有数据库,但是有大量的 API 调用,稍微封了下。

    登录方面,由于我们这里是后端处理的 SSO (一个 Apache 模块),目前采用的是粗暴的在 django template 里面注入 js 的用户基本信息及 token 。

    对于模板之间的冲突,你可以在 django template 中,使用
    {% verbatim %}{% endverbatim %}
    or, 配置 angularjs 的 $interpolateProvider( https://docs.angularjs.org/api/ng/provider/$interpolateProvider, 当然我们没有这样做,因为 template 都编译了)
    startSymbol();
    endSymbol();
    timonwong
        10
    timonwong  
       2015-12-10 19:32:59 +08:00
    当然,如果你不是使用 SPA ,可以参考 horizon 的做法,我个人不怎么喜欢
    jarlyyn
        11
    jarlyyn  
       2015-12-10 19:43:41 +08:00
    如果用 mvvm ,后台是啥重要么?

    就算 jquery,配合 underscore/lodash 的模板实现一下也不复杂吧
    lwbjing
        12
    lwbjing  
       2015-12-10 19:53:06 +08:00
    两个不搭噶啊哥... 前端千变万化,任你后端用的啥...
    cxbig
        13
    cxbig  
       2015-12-10 19:54:18 +08:00
    建议 React+Redux
    lwbjing
        14
    lwbjing  
       2015-12-10 19:58:27 +08:00   ❤️ 1
    正经一下... avalonjs 适合你需要搭配低版本 IE 的场景.. 然后 angular 而言,还是推荐 vue ,如果是写后台的话,不妨看看蚂蚁金服的 [react ui]( http://ant.design/) 实现..
    shooter
        15
    shooter  
       2015-12-10 20:02:06 +08:00
    clino
        16
    clino  
       2015-12-10 20:19:41 +08:00
    avalonjs
    sox
        17
    sox  
       2015-12-10 20:22:16 +08:00
    重构麻烦的话,推荐 Vue 和为非单页应用设计的 vue-simple-router https://github.com/egoist/vue-simple-router

    和是不是 django 没有任何关系。
    LancerComet
        18
    LancerComet  
       2015-12-10 20:30:05 +08:00
    楼主不妨试试 Avalon + Browserify ,个人感觉 Webpack + Vue 可能会增加楼主学习成本(?)
    avichen
        19
    avichen  
       2015-12-10 21:03:31 +08:00
    @lwbjing ant 好东西啊,谢谢分享
    hbkdsm
        20
    hbkdsm  
       2015-12-10 21:06:59 +08:00
    用啥不重要,重要的是先进行前后端分离
    yunkou
        21
    yunkou  
       2015-12-10 22:50:05 +08:00
    Vue
    chemzqm
        22
    chemzqm  
       2015-12-10 23:05:31 +08:00   ❤️ 1
    我觉得你还是就用 jquery 吧 换别的只会让你吐更多😏
    lixia625
        23
    lixia625  
    OP
       2015-12-11 00:00:34 +08:00 via Android
    @chemzqm 这是为啥:-(
    tongqi
        24
    tongqi  
       2015-12-11 00:36:19 +08:00 via iPad   ❤️ 2
    前端: react + react-router + redux + webpack
    后端: django-rest-framework
    hqlf6rqieee3
        25
    hqlf6rqieee3  
       2015-12-11 14:20:50 +08:00
    前端: angular
    后端: django-rest-framework
    lyhapple
        26
    lyhapple  
       2015-12-11 16:13:53 +08:00
    https://github.com/lyhapple/django-adminlte 中午刚 push 了一个, 用的 vue.js , 不过用的不彻底,还在用 jquery
    lixia625
        27
    lixia625  
    OP
       2015-12-11 23:06:14 +08:00 via Android
    @lyhapple
    棒极 待我一会儿观摩观摩
    bwangel
        28
    bwangel  
       2016-03-01 07:36:37 +08:00
    @timonwong 有用,谢谢!
    zonghua
        29
    zonghua  
       2016-04-07 22:20:46 +08:00 via iPhone
    @chemzqm 用其它前端框架的话什么都要重新适应,都分离了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5442 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 08:00 · PVG 16:00 · LAX 00:00 · JFK 03:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.