V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
kokdemo
V2EX  ›  分享创造

v2ex.k 新版内测

  •  3
     
  •   kokdemo ·
    kokdemo · 2016-07-11 22:03:58 +08:00 · 6076 次点击
    这是一个创建于 3060 天前的主题,其中的信息可能已经有所发展或是发生改变。

    距离 v2ex.k 上一个版本已经好久好久了……

    重写的原因

    依稀记得为了写这个插件学习 react 的日子,然而在写完这个插件之后我就再没有写 react 了:P 。

    所以一直没有更新是有理由的。

    这段时间决定重写一下这个插件,全部换成了 vue 。于是就有了目前的这个版本。

    由于是重写,因此没能 100%的还原 react 版本的全部功能(其实我也忘了之前有什么功能了......)。基本完成了样式的重现。

    大概长这样:

    image

    怎么安装:

    最后,希望测试使用的童鞋能多多的反馈建议。能顺手给个star就更好啦!

    35 条回复    2016-07-18 18:38:39 +08:00
    designer
        1
    designer  
       2016-07-11 22:19:48 +08:00
    我还以为是一个域名。。
    DearTanker
        2
    DearTanker  
       2016-07-11 22:22:12 +08:00
    做成插件放 chrome 市场吧,这样加载略嫌麻烦。(其实是我太懒
    learnshare
        3
    learnshare  
       2016-07-11 22:23:28 +08:00
    来,邀请楼主来对比一下 React 和 Vue
    chanssl
        4
    chanssl  
       2016-07-11 22:44:23 +08:00
    适用了一下,不太习惯,视角方向需要左右切换,有点累
    jamesxu
        5
    jamesxu  
       2016-07-11 22:45:39 +08:00 via iPhone
    很好,不用来回翻页
    xhowhy
        6
    xhowhy  
       2016-07-11 23:44:55 +08:00 via iPhone
    何苦用 vue
    mthli
        7
    mthli  
       2016-07-12 00:14:10 +08:00
    :P
    baoguok
        8
    baoguok  
       2016-07-12 02:21:52 +08:00
    这个是基于 api 做的么?
    kokdemo
        9
    kokdemo  
    OP
       2016-07-12 10:30:42 +08:00
    @DearTanker 有上架,但是这是个不完全功能的版本,所以没有全面更新。

    @learnshare 不吹不黑,我个人更喜欢 vue ,等到 2.0 出来之后会更新到 vue2.0 的版本。

    @chanssl 这个比较适合宽屏用,最窄也能支持到 1100px 左右的宽度

    @xhowhy 主要就是手熟……

    @baoguok 并不是,全部拿的是原来页面的数据,整理之后重新展现。
    oott123
        10
    oott123  
       2016-07-12 10:31:22 +08:00   ❤️ 1
    😂我就知道没有 Firefox 版本
    kokdemo
        11
    kokdemo  
    OP
       2016-07-12 10:33:30 +08:00
    @oott123 应该是没有,但是我会考虑把插件改写成 userscript 的形式。
    oott123
        12
    oott123  
       2016-07-12 10:34:45 +08:00
    @kokdemo 其实 Firefox 最近支持 Web Extensions 了……看你这插件感觉应该改改就能用。
    不过有 userscript 版本最好啦……这样普适性强,在 chrome 下也不用折腾什么开发者模式整天被禁用插件了。
    xhowhy
        13
    xhowhy  
       2016-07-12 10:39:57 +08:00
    @kokdemo @learnshare
    vue2 里貌似没有 shouldComponentUpdate ,但有时候非常有用,举个例子,比如渲染一个实时的新闻列表

    在渲染每行 Cell 的时候,只要重写 Cell 组件的 shouldComponentUpdate ,`return this.props.updateTime === newProps.updateTime `,这样直接就完成了 diff ,简单高效,不需要深度 diff 不需要 Imutable 。
    这样的优化效果是没有 shouldComponentUpdate 的方式无法比拟的,后者宣称开发再方便,不支持开发者直接进行优化,在很多时候性能都会被秒成渣。

    如果有了 shouldComponentUpdate , vue2 和 react 又有何区别?所以为毛要用一个小众框架。。
    kokdemo
        14
    kokdemo  
    OP
       2016-07-12 10:40:08 +08:00   ❤️ 1
    @oott123 额,也不是 userscript 最好, chrome 的插件毕竟可以拿到不少的权限,这样我折腾起来也容易的多。
    oott123
        15
    oott123  
       2016-07-12 10:44:39 +08:00
    @xhowhy 你指的是 http://vuejs.org/guide/list.html#track-by 这种功能么?


    @kokdemo 嗯,有道理,不过还是希望能出功能精简的 userscript 或者 firefox 扩展 😂 或者改天我自己移植一下……
    kokdemo
        16
    kokdemo  
    OP
       2016-07-12 10:45:52 +08:00   ❤️ 1
    @oott123 这个项目接下来的方向应该是挪到 electron 里面封装一个 mac 客户端,所以 firefox 扩展靠你了……
    TangMonk
        17
    TangMonk  
       2016-07-12 10:46:24 +08:00
    安装了一个感觉还不错
    oott123
        18
    oott123  
       2016-07-12 10:49:27 +08:00
    @kokdemo 赞。开始开发的时候记得在 V2 发帖,有空我也想 contribute 一些~
    kokdemo
        19
    kokdemo  
    OP
       2016-07-12 10:57:30 +08:00
    @oott123 我都是闷声开发的,只有快成品了才批量 commit ……
    xhowhy
        20
    xhowhy  
       2016-07-12 11:15:05 +08:00
    @oott123 确实可以把我说的场景中,字段合并后进行编码,比如 uid = md5(articleId + updateTime),但这样就显得不太优雅了:

    1. 只是想 diff ,为什么要引入一种消耗性能的 guid 生成方式呢
    2. md5(articleId + updateTime) 这样的方式生成 uid ,然后让框架去对比 uid ,这样做完全不符合开发直觉:我明明可以直接比较 updateTime 字段,为啥要通过 updateTime 小心翼翼地生成一个 uid 呢,还得防止冲突碰撞
    learnshare
        21
    learnshare  
       2016-07-12 11:21:00 +08:00
    @xhowhy 我在 Angular.js 里也用 updateTime 去驱动重新渲染,$watch 深度对比几乎是废物

    因为写 Angular.js 很久了,所以我更倾向于 Vue ,而不是 React 。 React 的许多风格都不喜欢
    oott123
        22
    oott123  
       2016-07-12 11:24:20 +08:00
    @xhowhy 你如果可以直接比较 updateTime ,那你直接写 track-by="updateTime" 就行了嘛,不一定要生成 UID 呀……
    要是后端有现成的 UID ,那也可以正好直接拿过来用嘛。
    xhowhy
        23
    xhowhy  
       2016-07-12 11:57:16 +08:00
    @oott123 两篇文章的 updateTime 一样 那不就错了嘛 至少得 articleId + updateTime
    xhowhy
        24
    xhowhy  
       2016-07-12 12:00:30 +08:00
    @oott123 shouldComponentUpdate 让我自己可以定义比较过程,用 vue 让我不仅得清楚比较过程,还得为这个过程的结果生成一个 uid 。高下立判。
    oott123
        25
    oott123  
       2016-07-12 12:09:54 +08:00
    @xhowhy 那就 track-by="'' + articleId + updateTime" ……感觉看上去还行?
    xhowhy
        26
    xhowhy  
       2016-07-12 12:12:22 +08:00 via iPhone
    @oott123 uid=articleId+updateTime 感觉很 low 理由上一条说了
    kokdemo
        27
    kokdemo  
    OP
       2016-07-12 14:41:24 +08:00   ❤️ 1
    @xhowhy
    @oott123 我还指望着你们反馈一些使用建议和反馈呢,结果你们因为这个吵起来了……
    oott123
        28
    oott123  
       2016-07-12 14:43:06 +08:00
    @kokdemo 不算吵,和谐讨论~
    对离题感到抱歉。 sorry :(
    kokdemo
        29
    kokdemo  
    OP
       2016-07-12 14:50:18 +08:00   ❤️ 1
    @oott123 这个不用抱歉啊,只要能收到有效的反馈我就很开心。
    xhowhy
        30
    xhowhy  
       2016-07-12 17:55:30 +08:00 via iPhone
    @kokdemo 嗯 和谐讨论 你有没有一点点感受到我说的情况
    ClassicOldSong
        31
    ClassicOldSong  
       2016-07-16 07:43:14 +08:00 via Android
    看起来很赞~ star 之~
    dtfm
        32
    dtfm  
       2016-07-18 16:31:01 +08:00
    貌似这个开发者是厨师公司的 PR ,真的挺厉害啊。
    kokdemo
        33
    kokdemo  
    OP
       2016-07-18 18:27:37 +08:00
    @dtfm pr 是啥……
    dtfm
        34
    dtfm  
       2016-07-18 18:37:17 +08:00
    @kokdemo 写错啦, PM ,产品经理啊
    dtfm
        35
    dtfm  
       2016-07-18 18:38:39 +08:00
    @kokdemo 你不就是么!对下厨房一向有好感,想跳去它的 Android 岗,我之前在一个吐槽微博邮箱里见过你的回复就记住了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1117 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:04 · PVG 03:04 · LAX 11:04 · JFK 14:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.