距离 v2ex.k 上一个版本已经好久好久了……
依稀记得为了写这个插件学习 react 的日子,然而在写完这个插件之后我就再没有写 react 了:P 。
所以一直没有更新是有理由的。
这段时间决定重写一下这个插件,全部换成了 vue 。于是就有了目前的这个版本。
由于是重写,因此没能 100%的还原 react 版本的全部功能(其实我也忘了之前有什么功能了......)。基本完成了样式的重现。
这个插件在 chrome 上已经上架过,如果你想体验老版本:
https://chrome.google.com/webstore/detail/v2exk/dnbmbhefokngmkalbdcgjdlgoppfhndn
如果愿意体验新的版本,请访问 github ,下载整个 repo ,然后在 chrome 的扩展程序中加载进去。
最后,希望测试使用的童鞋能多多的反馈建议。能顺手给个star就更好啦!
1
designer 2016-07-11 22:19:48 +08:00
我还以为是一个域名。。
|
2
DearTanker 2016-07-11 22:22:12 +08:00
做成插件放 chrome 市场吧,这样加载略嫌麻烦。(其实是我太懒 )
|
3
learnshare 2016-07-11 22:23:28 +08:00
来,邀请楼主来对比一下 React 和 Vue
|
4
chanssl 2016-07-11 22:44:23 +08:00
适用了一下,不太习惯,视角方向需要左右切换,有点累
|
5
jamesxu 2016-07-11 22:45:39 +08:00 via iPhone
很好,不用来回翻页
|
6
xhowhy 2016-07-11 23:44:55 +08:00 via iPhone
何苦用 vue
|
7
mthli 2016-07-12 00:14:10 +08:00
:P
|
8
baoguok 2016-07-12 02:21:52 +08:00
这个是基于 api 做的么?
|
9
kokdemo OP @DearTanker 有上架,但是这是个不完全功能的版本,所以没有全面更新。
@learnshare 不吹不黑,我个人更喜欢 vue ,等到 2.0 出来之后会更新到 vue2.0 的版本。 @chanssl 这个比较适合宽屏用,最窄也能支持到 1100px 左右的宽度 @xhowhy 主要就是手熟…… @baoguok 并不是,全部拿的是原来页面的数据,整理之后重新展现。 |
10
oott123 2016-07-12 10:31:22 +08:00 1
😂我就知道没有 Firefox 版本
|
12
oott123 2016-07-12 10:34:45 +08:00
@kokdemo 其实 Firefox 最近支持 Web Extensions 了……看你这插件感觉应该改改就能用。
不过有 userscript 版本最好啦……这样普适性强,在 chrome 下也不用折腾什么开发者模式整天被禁用插件了。 |
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 又有何区别?所以为毛要用一个小众框架。。 |
14
kokdemo OP @oott123 额,也不是 userscript 最好, chrome 的插件毕竟可以拿到不少的权限,这样我折腾起来也容易的多。
|
15
oott123 2016-07-12 10:44:39 +08:00
@xhowhy 你指的是 http://vuejs.org/guide/list.html#track-by 这种功能么?
@kokdemo 嗯,有道理,不过还是希望能出功能精简的 userscript 或者 firefox 扩展 😂 或者改天我自己移植一下…… |
16
kokdemo OP @oott123 这个项目接下来的方向应该是挪到 electron 里面封装一个 mac 客户端,所以 firefox 扩展靠你了……
|
17
TangMonk 2016-07-12 10:46:24 +08:00
安装了一个感觉还不错
|
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 呢,还得防止冲突碰撞 |
21
learnshare 2016-07-12 11:21:00 +08:00
@xhowhy 我在 Angular.js 里也用 updateTime 去驱动重新渲染,$watch 深度对比几乎是废物
因为写 Angular.js 很久了,所以我更倾向于 Vue ,而不是 React 。 React 的许多风格都不喜欢 |
22
oott123 2016-07-12 11:24:20 +08:00
@xhowhy 你如果可以直接比较 updateTime ,那你直接写 track-by="updateTime" 就行了嘛,不一定要生成 UID 呀……
要是后端有现成的 UID ,那也可以正好直接拿过来用嘛。 |
24
xhowhy 2016-07-12 12:00:30 +08:00
@oott123 shouldComponentUpdate 让我自己可以定义比较过程,用 vue 让我不仅得清楚比较过程,还得为这个过程的结果生成一个 uid 。高下立判。
|
31
ClassicOldSong 2016-07-16 07:43:14 +08:00 via Android
看起来很赞~ star 之~
|
32
dtfm 2016-07-18 16:31:01 +08:00
貌似这个开发者是厨师公司的 PR ,真的挺厉害啊。
|