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

百度也整了个 MVVM 前端框架: San,它支持 ie6 !!!???!!!

  •  
  •   Terry05 ·
    TerryZ · 2018-06-22 11:00:14 +08:00 · 13064 次点击
    这是一个创建于 2350 天前的主题,其中的信息可能已经有所发展或是发生改变。

    首页: san

    Github: san

    以百度这样的体量,让团队开发个 MVVM 框架不奇怪,支持 ie6 让我有点震惊,这是要吃准了国情弯道超车!?

    简单看了下,感就是照着 Vue 来做的

    72 条回复    2018-06-23 13:40:02 +08:00
    morethansean
        1
    morethansean  
       2018-06-22 11:02:34 +08:00 via iPhone   ❤️ 3
    我觉得吧,8102 年了
    还在谈支持 ie6 不是加分项,是减分项
    LaplaceTransform
        2
    LaplaceTransform  
       2018-06-22 11:04:21 +08:00
    好事吧,希望能做好
    wxsm
        3
    wxsm  
       2018-06-22 11:05:04 +08:00   ❤️ 5
    其实吧,支持 ie6 这回事,真的很。。。。

    你想想,它的生态怎么做?我做个 ui 库,要不要支持 ie6 呢?开源作者很头疼的啊。
    hhacker
        4
    hhacker  
       2018-06-22 11:07:27 +08:00   ❤️ 2
    支持 IE6 谁敢用它啊
    34C
        5
    34C  
       2018-06-22 11:12:47 +08:00 via iPhone
    ECharts 团队搞的,应该还不错
    Foolt
        6
    Foolt  
       2018-06-22 11:20:04 +08:00   ❤️ 1
    做得好,我选择 Vue.js
    huaouo
        7
    huaouo  
       2018-06-22 11:26:47 +08:00 via Android
    图标和 Scala 好像 ...
    grewer
        8
    grewer  
       2018-06-22 11:27:35 +08:00
    我选择 avalon
    lred
        9
    lred  
       2018-06-22 11:30:20 +08:00
    两年前就整了
    tiaod
        10
    tiaod  
       2018-06-22 11:44:22 +08:00
    8102 年还支持 IE6 简直人人喊打啊
    ctsed
        11
    ctsed  
       2018-06-22 12:02:25 +08:00 via Android   ❤️ 7
    政府和企业中 ie68 比重很大,比如电力 一个系统寿命十几年很常见,底下写着©200x 真的不要太多,见过几十个项目,只有一个对着 ie8 以上开发的,用了 bootstrap,升级改造?可以啊,多交点税,扇几天扇子。这么一搞估计人民又要喷了:老子交的钱是享受服务的,不是让你们 xx 造玩具炫技的骗经费的。坐在开发者的屁股上面鄙视 ie 一点毛病没有,但是这个包袱客观存在要逐步卸下来。
    zacksleo
        12
    zacksleo  
       2018-06-22 12:06:54 +08:00 via iPhone
    是啊,这锅不能算开发的,用户环境使然, 政府企业啥时候能升级 xp 啊
    mars0prince
        13
    mars0prince  
       2018-06-22 12:08:52 +08:00   ❤️ 1
    san 支持 ie6,webpack 支持吗? babel 支持吗?各种周边工具支持吗?没有这些现代工具对 IE 的大力兼容,MVVM 就是空中楼阁
    higoge
        14
    higoge  
       2018-06-22 12:12:56 +08:00
    最近一个项目让几十个政府部门升级 IE11,那过程直接不是“痛苦”两个字就能说明白的
    szj1006
        15
    szj1006  
       2018-06-22 12:14:38 +08:00 via iPhone   ❤️ 1
    San 首页有说明为什么做兼容:
    通过方法修改数据的另一好处是,可以获得更好的浏览器兼容性。毕竟有时我们产品的受众用户有点死板。
    ---
    显然是百度的受众用户问题
    Arrowing
        16
    Arrowing  
       2018-06-22 12:14:41 +08:00
    支持 IE6 有点心慌慌,不敢用。
    ctsed
        17
    ctsed  
       2018-06-22 12:16:27 +08:00 via Android
    @szj1006 你国好垃圾
    a5677746
        18
    a5677746  
       2018-06-22 12:17:09 +08:00 via Android
    通过方法修改数据的另一好处是,可以获得更好的浏览器兼容性。毕竟有时我们产品的受众用户有点死板。

    怕不是在暗示什么
    ctsed
        19
    ctsed  
       2018-06-22 12:17:51 +08:00 via Android
    @szj1006 你国好多低端人口
    xi_lin
        20
    xi_lin  
       2018-06-22 12:18:13 +08:00   ❤️ 1
    关于 ie6,大家可以翻翻项目 issue,没有强制绑定要用吧
    murmur
        21
    murmur  
       2018-06-22 12:18:53 +08:00
    @morethansean 但是从钱的角度来说 做政府项目钱还不少。。人家未必比你 react 的工资低
    ctsed
        22
    ctsed  
       2018-06-22 12:21:27 +08:00 via Android
    @murmur 上线前要有一些检测之类的审核,如果一次没过,后面单检测费就几万十几万
    yamedie
        23
    yamedie  
       2018-06-22 12:36:16 +08:00
    兼容到 IE6, 代码势必要编译成 ES3 吧, 很多 1 行能解决的事怕不是要兜个大弯子才行, 效率堪忧.
    ShineSmile
        24
    ShineSmile  
       2018-06-22 12:54:21 +08:00
    还有 7891011edge 需要兼容
    麻烦百度的工程师再多努力一些
    laobubu
        25
    laobubu  
       2018-06-22 12:55:17 +08:00
    打开项目网站,第一眼印象挺走心的,但是代码里一大堆的 .data.set() .data.get() 以及 .data.push('array1', xxx) 之类的看得脑阔疼。
    如果可搞一个 babel 插件或者 TypeScript Transformer 把这些丑写法藏起来就好了
    DOLLOR
        26
    DOLLOR  
       2018-06-22 12:56:46 +08:00 via Android
    @mars0prince
    webpack 还真的可以,把 babel 换成 tsc,target 设为 ES3,再引入 es5、es6、es7、es8、es9 等等 polyfill😅
    dong3580
        27
    dong3580  
       2018-06-22 13:32:16 +08:00   ❤️ 1
    @mars0prince
    webpack 只是打包工具,兼容性考虑一些 css 和 js 的写法就行了。
    jiqing
        28
    jiqing  
       2018-06-22 14:03:00 +08:00
    这些前端工具怎么用的,谁给解释一下。这个 san 很久之前就看到了,看不明白。我对前端的理解还仅仅局限在 bs 框架,引入 js 改 class 名。
    k9982874
        29
    k9982874  
       2018-06-22 14:17:25 +08:00
    @laobubu #25 我是接受不了它的 template 定义成字符串,变量又直接定义在模板字符串中
    sangmong
        30
    sangmong  
       2018-06-22 14:18:49 +08:00   ❤️ 3
    只要还有一个人在用 ie6,就会去兼容,这才叫大公司,你们这些弱鸡懂什么
    jjplay
        31
    jjplay  
       2018-06-22 14:27:26 +08:00
    百度框架为什么不以 B 开头,叫做 Ban 多 nice https://www.v2ex.com/static/img/doge.gif
    wangxiaoaer
        32
    wangxiaoaer  
       2018-06-22 14:38:05 +08:00 via Android
    @ctsed 咋一听好像很有道理,可惜不是那么回事儿。

    就拿政府企业来说,已有 ie 68 的项目维护不可能引入这种框架。
    新项目没有兼容的必要。
    ctsed
        34
    ctsed  
       2018-06-22 15:28:33 +08:00   ❤️ 1
    @wangxiaoaer #32 谁告诉你不可能的?甲方技术部门都知道 ie68 上淘宝京东不好使,生产、办公、涉密用破电脑,人家自己买的 win10 本 mac 本啊;要么甲方提供框架环境,要么提供接口规格,合同里签了维护条款,你爱用 jquery 用 jquery,爱用 mvvm 用 mvvm ;战线长了什么项目没有,你随便找几家 2000 年到现在的老牌公司,哪怕本身就是 it 相关,oa crm 没做过迁移的,ie6~chrome60 全线通吃,不知打过多少补丁;啥?你说 vue react 才是现代框架?代表先进生产力?先不算像电力这样基础设施的系统,公司里 oa crm 不计成本全都停一周做迁移,只兼容新版 chrome safari firefox,你看你公司炸不炸;包袱之所以叫包袱,是因为重而不能丢。
    winiex
        35
    winiex  
       2018-06-22 15:47:36 +08:00   ❤️ 1
    作为 web 框架不去加速 IE6 的淘汰,是没有社区责任感的。
    wlwood
        36
    wlwood  
       2018-06-22 15:52:42 +08:00
    真的兼容 ie6 么?

    为何我用 ie 打开它的组件,都无法显示?

    https://ecomfe.github.io/san-mui/#/components/AppBar
    Lawlieti
        37
    Lawlieti  
       2018-06-22 15:55:12 +08:00
    造这么多轮子有意思吗?
    overflowHidden
        38
    overflowHidden  
       2018-06-22 16:20:28 +08:00
    vue 语法糖加 react 函数式编程和 jsx,前阵子 facebook license 时间加上兼容性问题,百度造这么个框架很正常
    leonlu
        39
    leonlu  
       2018-06-22 16:35:29 +08:00   ❤️ 3
    支持到 ie6,说得准确点应该是支持 ie678。这只是 san 的一个加分项而已。san 也是支持 chrome 等等现代浏览器的啊,大家不用过于担心。而且就算 san 支持了 ie678 这些老古董们,体积也只有 14KB,还是远小于 Vue/ React 的 。

    虽然前端开发者们心理生理上都需要淘汰 ie678,但是我们也不得不承认仍然有一些站点『被迫』需要支持 ie678。目前根据 http://tongji.baidu.com/data/browser 给出的数据来看,ie78 就是 pc 流量的 10% 左右,ie6 基于上已经狗带了。这样来看,这些流量很可能也就是 pc 用户群体 /收入的 10%。直接放弃流量这种事情老板肯定是不乐见的,这时候说什么社区责任感什么都是 shit。无论是 Vue 还是 React,都没办法跑了,而用 san 至少你的 js/组件还能用啊!只是兼容一下 css,还省力不少的。

    对于以移动流量 /『高端用户』为主目标用户人群的站点来讲,这个兼容 ie678 这个特性直接忽略就好了,功能 /易用性 /性能上也都不会差。如果讲性能,浏览器渲染也好,服务端预渲染也罢,san 也是遥遥领先。https://baidu.github.io/san/ 大家可以自己看。
    wangxiaoaer
        40
    wangxiaoaer  
       2018-06-22 16:36:08 +08:00 via Android   ❤️ 1
    @ctsed 我们给 j 区政府做的项目多了,10 年开始就强推 ie9 chrome.

    现在的项目根本不考虑 Ie .
    opengps
        41
    opengps  
       2018-06-22 16:38:00 +08:00
    百度可能是给政府项目做多了,不得不支持 ie6, 有些陈旧老设备,还在 xp 时代。。。医院等地方比较常见 xp 老机器
    leonlu
        42
    leonlu  
       2018-06-22 16:38:30 +08:00
    @wlwood 这个是因为这套组件库是不支持 ie678 的,san 框架本身是支持 ie678 的。这个组件库是 Google 的 material 风格啊,支持到 ie6 还不如去死算了。
    luffysup
        43
    luffysup  
       2018-06-22 16:39:10 +08:00
    这个轮子做的好 但是我一般不考虑 ie6 所以我还是不选这个把
    leonlu
        44
    leonlu  
       2018-06-22 16:42:21 +08:00
    @k9982874 一般情况下,大家都直接写 `.san` 格式的组件呢,可以对标 `.vue`
    Tokin
        45
    Tokin  
       2018-06-22 16:50:31 +08:00
    San-mui 写的好随意,https://ecomfe.github.io/san-mui/#/components/Toast 这是实习生写的吗
    ctsed
        46
    ctsed  
       2018-06-22 16:52:14 +08:00
    @wangxiaoaer #40 有人推动办公人员电脑当然好协调了,又没啥风险,能上新上新。生产控制设备显示器键盘都是内嵌的,常见的有 ATM 机,事实上和你生活息息相关的众多基础系统能用 win7 就不错了,这个老破旧的问题不只中国有,看看去年永恒之蓝漏洞打挂多少系统,有的地方手工操作上街排队了。要不就花钱改造让开发人员少费脑子,要不就“又不是不能用”兼容一下,你既不肯多花钱又不要慢慢迭代,这样人很为难啊。
    shangfabao
        47
    shangfabao  
       2018-06-22 16:53:06 +08:00 via Android
    烂大街的 xp 基本都 ie8 了
    dbpe
        48
    dbpe  
       2018-06-22 16:53:23 +08:00   ❤️ 1
    各种轮子。。。正妹那还有个 anujs
    ctsed
        49
    ctsed  
       2018-06-22 16:53:36 +08:00
    @leonlu #39 就我知道的用 ie6 的大部分都不联外网使用了
    Humorce
        50
    Humorce  
       2018-06-22 17:09:42 +08:00
    按照政府的信息化进程,支持 IE6 属于炫技。
    leonlu
        51
    leonlu  
       2018-06-22 17:13:45 +08:00
    @Tokin 整体组件库的文档站点都是粗糙的不行。。。明显没有 PM+UE 加持,浓郁的程序员风味:视觉和文案就这样吧,我尽力了(扑街)。。。
    xianxiaobo
        52
    xianxiaobo  
       2018-06-22 17:29:15 +08:00
    本来准备学的,后来发现虽然框架支持 ie6,但是并没有与之匹配的组件库 ui 库之类的东西。所以这东西确实没什么前途。
    Felldeadbird
        53
    Felldeadbird  
       2018-06-22 17:41:27 +08:00
    只怕这个框架 过了一段时间没人维护了。
    599316527
        54
    599316527  
       2018-06-22 17:43:31 +08:00
    @wlwood 不是同一个东西。框架支持,UI 支不支持另说嘛
    599316527
        55
    599316527  
       2018-06-22 17:45:32 +08:00
    怎么都在说 IE6,人家都写了,因为用了 set 所以能兼容,那就顺手兼容一下呗。代码都开源了,你要不想兼容,就改下 webpack 的 stage 就行
    PhpBestRubbish
        56
    PhpBestRubbish  
       2018-06-22 17:45:52 +08:00
    ECharts 团队做的 必须支持
    PhpBestRubbish
        57
    PhpBestRubbish  
       2018-06-22 17:51:41 +08:00
    兼容 ie6 垃圾 都什么年代了 还去兼容 ie6
    不兼容 ie6 垃圾 ie6 用户怎么办
    jagger2048
        58
    jagger2048  
       2018-06-22 18:22:41 +08:00
    就一个“兼容 ie6 ”就能扯半天,框架本身却没人关注 药丸
    xhyzidane
        59
    xhyzidane  
       2018-06-22 18:37:09 +08:00   ❤️ 1
    最好再兼容个 Netscape 6、IE4,让大家都能体验到上网冲浪的快感
    xhyzidane
        60
    xhyzidane  
       2018-06-22 18:37:41 +08:00
    @jagger2048 兼容性不属于框架本身吗?
    huskar
        61
    huskar  
       2018-06-22 18:47:30 +08:00
    @ctsed 肯定存在仍在用 ie6 的人和组织机构,用再老旧的技术也是人家的自由,没啥可喷的。

    可是百度身为一个商业公司,发布一个开源作品肯定是希望获得社区认可的。在 2018 年发布一个前端框架,却还要支持 ie6 是为了什么?就为了迎合仍在用 ie6 的这一批用户?还是觉得喜欢现代技术的开发者看到他支持 ie6 会对这个框架更有好感?
    我觉得两头不落好,既让大部分现代开发者反感, 又无形中延长了早该淘汰技术的寿命。
    fancyhan
        62
    fancyhan  
       2018-06-22 18:56:55 +08:00
    你敢用吗,他们业务调整说变就变
    yksoft1
        63
    yksoft1  
       2018-06-22 19:02:18 +08:00
    @xhyzidane 还有支持功能手机的老浏览器,比如 Netfront 之类?
    ctsed
        64
    ctsed  
       2018-06-22 20:33:36 +08:00 via Android
    @huskar 你又肯定了?现在开源负担这么重了吗
    mingyun
        65
    mingyun  
       2018-06-23 00:30:05 +08:00
    2018 还支持 ie6 可以的
    murmur
        66
    murmur  
       2018-06-23 00:52:00 +08:00
    @huskar 百度这个招牌不好,再加上 react 是洋人作品信仰高,vue 信仰不够但是入场早,所以 ie8+已经留给百度的不多了,如果百度再挤 ie8+
    给我个理由好么
    jedihy
        67
    jedihy  
       2018-06-23 01:09:42 +08:00 via iPhone
    @winiex 早淘汰了。只是有些系统还在用没办法。
    Geo200
        68
    Geo200  
       2018-06-23 08:41:11 +08:00 via iPhone
    @huskar 你想太多了,这八成就是个 KPI 产物,我敢打赌过了今年这个项目就基本上不会再更新了,因为已经发年终奖了。
    Ssskyl
        69
    Ssskyl  
       2018-06-23 09:07:22 +08:00
    我觉得把兼容 ie6 的部分抽出来,再搞个 ie8+的版本
    hundan
        70
    hundan  
       2018-06-23 10:24:47 +08:00 via Android
    就怕到时候没人维护
    Terry05
        71
    Terry05  
    OP
       2018-06-23 11:26:06 +08:00
    百度有挺多开源项目最后都太监了,比如很多人在用的文件上传组件:WebUploader
    fan776783
        72
    fan776783  
       2018-06-23 13:40:02 +08:00
    别提了,说好的兼容 ie6,连 ie9 下的下拉框渲染都有问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1285 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 17:58 · PVG 01:58 · LAX 09:58 · JFK 12:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.