大写的不服,给 vuejs 提交了个 issue,估计首个阅读的协作者没有理解其中的区别就草草 close 了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiangyuecn
V2EX    Vue.js

大写的不服,给 vuejs 提交了个 issue,估计首个阅读的协作者没有理解其中的区别就草草 close 了

  •  
  •   xiangyuecn
    xiangyuecn 2019-12-05 10:30:46 +08:00 7804 次点击
    这是一个创建于 2145 天前的主题,其中的信息可能已经有所发展或是发生改变。

    虽然我是 vue 新手,也没有阅读过 vue 的源码,但猪肉不管涨价多少也是猪肉呀,bug 世界里经常是越改 bug 越多也是现状呀

    然后发现他改了我的标题后,我又发现一个新的这个例子来举证这个 bug

    别的都没什么,但仅经过他一个人发了一句,和#8021 那个问题像就草草 close 我的这个问题,我是大写的不服的。

    怎么招也可以等个 1、2 天 或者 有另外有人确认这个问题,再 close 我也不会这么反应强烈。我并非针对他这个人,他们都是大佬,我只是针对这种做法,觉得有点不太合理

    中式英语写的不好,欢迎围观: https://github.com/vuejs/vue/issues/10892 ;如果过一个礼拜没有满意的答案,这个 issue 算是废了,一个礼拜后另外再开一个 isuse。

    相关 V2EX 帖子:请问:v-once 到底是个啥玩意? /t/625317

    33 条回复    2019-12-28 19:23:35 +08:00
    xiangyuecn
        1
    xiangyuecn  
    OP
       2019-12-05 10:55:01 +08:00
    目测要修复这个 bug 会很艰难,稍微瞄了一下其他 issue,那些 v-for 里面的 v-if 之类的 bug 也可能和这个 bug 是相关的。

    这种 bug 这样写才会触发,那样写又不会触发;前面有点东西会触发,前面没有东西又不会触发;典型的疑难杂症的表现,最极端的预测需要重构整个 vue core 才能修复这个问题,(没有阅读 vue 源码没有发言权,这里是瞎猜的)
    ericgui
        2
    ericgui  
       2019-12-05 11:01:22 +08:00
    换 react
    warcraft1236
        3
    warcraft1236  
       2019-12-05 11:04:56 +08:00
    这有啥我给 Feign 踢了一个 issue,没人理我,就在那放着
    shadowyue
        4
    shadowyue  
       2019-12-05 11:15:34 +08:00
    你要是想让 v-for 循环出来的内容是静态的,需要在 v-for 这个层级加 v-once
    qiaobeier
        5
    qiaobeier  
       2019-12-05 11:20:04 +08:00
    你的自我意识太强
    xiangyuecn
        6
    xiangyuecn  
    OP
       2019-12-05 11:21:57 +08:00
    @ericgui 日程安排下礼拜入门学习 react,每样来点,提升点生存能力

    @warcraft1236 你更惨些,我好,目前给别人提的 issue 都有回复或相应修复
    xiangyuecn
        7
    xiangyuecn  
    OP
       2019-12-05 11:23:23 +08:00
    @qiaobeier #5 抱歉,打扰了
    xiangyuecn
        8
    xiangyuecn  
    OP
       2019-12-05 11:25:02 +08:00
    @shadowyue #4 不能这样乱来的 按需进行操作,不然改完这处 bug,引出 10 处 bug
    lscexpress
        9
    lscexpress  
       2019-12-05 11:26:48 +08:00
    我猜测你的 issue 是之前就有别人提了,团队应该在处理之中,就把你的给关闭了
    xiangyuecn
        10
    xiangyuecn  
    OP
       2019-12-05 11:33:24 +08:00
    @lscexpress #9 不排除这个可能,不过可能性太低,#8021 这个问题 包括 fix PR 都提了一年半了,没有任何动静
    shadowyue
        11
    shadowyue  
       2019-12-05 11:39:56 +08:00
    你这个显示时间的方法 getTime,你改成计算属性,既不会更新了。
    可能你在模板里边调用了 getTime()实打实的计算出来了一个新值。
    不过我觉得主要问题还是 vue 自己没说清楚 template 和这些东西组合时候的具体情况。
    yukiloh
        12
    yukiloh  
       2019-12-05 11:42:24 +08:00 via Android   1
    见过一个 maven 的中等级 bug 是 gradle 员工直播修复的,我觉得这种东西 ucup
    alphatoad
        13
    alphatoad  
       2019-12-05 11:44:24 +08:00 via iPhone
    这也算是开源项目通病了,项目管理者脾气大,直接关 issue 还算好的了,pr 碰都不碰的是非常 depression 的一件事情
    reus
        14
    reus  
       2019-12-05 11:48:44 +08:00 via Android
    人非圣贤
    laike9m
        15
    laike9m  
       2019-12-05 11:50:25 +08:00   4
    不懂 Vue,单从英语的角度说,你写的句子给人感觉很不礼貌,全程都是命令语气。如果我是 maintainer 估计就懒得碰了。
    xiangyuecn
        16
    xiangyuecn  
    OP
       2019-12-05 11:55:38 +08:00
    @laike9m # 这。。。怪我英语从来没有及过格(传纸条还是很 6 的),我以为机器翻译出来的"Please" 是 "请您" 的意思。。。

    百度翻译:“请您再次修改标题” -> “Please change the title again” -> “请重新更改标题” 这锅我背
    Sapp
        17
    Sapp  
       2019-12-05 11:59:17 +08:00
    不是黑 vue,只是感慨一下,用了两年 react 再回过头来看 vue 这些个 api,感觉真的是又多又杂... 令人头大,不知道当初学的时候怎么看进去的
    xiangyuecn
        18
    xiangyuecn  
    OP
       2019-12-05 12:08:05 +08:00
    @shadowyue #11 静态方法如果改写成计算属性,将永远不会被再次调用,这是我的理解,实时时间获取不能用带缓存功能的计算属性。

    你运行一下测试代码,你就会发现这个 bug 不是想象中那么简单。
    rabbbit
        19
    rabbbit  
       2019-12-05 12:21:37 +08:00
    他这个八哥在于携带 v-once 的 template 生成之后 isOnce 和 isStatic 不知道为什么变成了 false,然后在 patchVnode 的时候被替换掉了.至于再深就没有研究

    这种 bug 规避掉就好...

    一个更明确的例子
    <div id="root">
    <div class="f">
    <div v-for="i in counter" :key="i" :ref=" 's' + i ">
    <span></span>
    <template v-once>{{getCounter()}}</template>
    </div>
    </div>
    <div class="f">
    <div v-for="i in counter" :key="i" :ref=" 's' + i ">
    <template v-once>{{getCounter()}}</template>
    </div>
    </div>
    </div>

    <script>
    const app = new Vue({
    el: "#root",
    data: {
    counter: 1
    },
    methods: {
    getCounter() {
    return this.counter
    }
    }
    });
    const interval = setInterval(() => {
    app.counter += 1;
    if (app.counter === 10) {
    clearInterval(interval);
    }
    }, 2000);
    </script>
    nbndco
        20
    nbndco  
       2019-12-05 12:22:15 +08:00   8
    大的开源项目维护很麻烦的,就算是这么关 issue,vue 现在依然有 270+的 open issue,按你的做法分分钟几千个 issue 而且还都需要 maintainer 时刻关注。所以一般都是第一时间 triage 然后就直接关掉了。

    开源项目基本就是这样,maintainer 一共没几个,更没有几个是全职,issue 多的一塌糊涂,绝大多数都是问“1+1 你写的计算器怎么返回了 2 而不是二”的,精力实在是顾不过来的。如果你发现他理解错了,你直接回复解释一下一般都会重开的。( PS:你的两个回复语气确实是太 rude 了)

    issue 还算好的,PR 更是麻烦。很多 PR 都是完全没和 maintainer 商量就写了的。也不是不行,但很多时候根本和项目设计理念矛盾,或者是问题百出完全没法 merge,更是难回,所以有时候就先放着,过了就忘了,然后就是楼上说的脾气大了。
    rabbbit
        21
    rabbbit  
       2019-12-05 12:22:52 +08:00
    <style>
    .f {
    float: left;
    width: 100px;
    border: 1px solid;
    }
    </style>
    skies457
        22
    skies457  
       2019-12-05 12:43:40 +08:00
    兄弟,你这个重现 bug 的 codepen 写得真让人看得头大。。。
    rabbbit
        23
    rabbbit  
       2019-12-05 12:46:43 +08:00
    测试了一下, #8021 并没有修复这个问题.
    楼主你要是不介意的话我可以再去提个 ISSUE.
    xiangyuecn
        24
    xiangyuecn  
    OP
       2019-12-05 12:47:59 +08:00
    @rabbbit #19 嗯,第二个 v-for 其实相当于 <div><template v-once></template></div>,也就是<div v-once></div>,所以这种写法是没有问题的。

    但里只要面多一个其他内容,包括纯文本节点,bug 就出现了,就是你第一个 v-for。
    xiangyuecn
        25
    xiangyuecn  
    OP
       2019-12-05 12:51:45 +08:00
    @nbndco #20 感谢你的解释。我的那个英语翻译过来的语气确实有问题,我不知道如何是好,静观其变吧,要是那个 maintainer 会提这个语言问题的话,我到时候好好跟他解释一下吧,确实我英语太烂了
    nbndco
        26
    nbndco  
       2019-12-05 12:59:17 +08:00 via iPhone
    @xiangyuecn 他绝对不会说语言问题的……
    xangyuecn
        27
    xiangyuecn  
    OP
       2019-12-05 13:02:24 +08:00
    @rabbbit emmmm... 用 https://github.com/vuejs/vue/pull/8499 里面的 fix 代码 clone 下来测试,vue 版本是 2.5.17-beta.0,#8021 的问题就消失了。不过这个 PR 还没有被 Merge,新版本里测试是不会有效果的
    rabbbit
        28
    rabbbit  
       2019-12-05 13:06:06 +08:00
    @xiangyuecn
    可能是我的表述有误
    我的意思是:
    把 8499 的 pr 合并进 vdom/patch.js 进行测试, 发现楼主的问题并没有被解决.
    xiangyuecn
        29
    xiangyuecn  
    OP
       2019-12-05 13:12:13 +08:00
    @rabbbit #23 #28 哦,是我理解错了,谢谢你呀。我直接 clone 的 8499 的代码测试的,是对我的这个问题没有效果,我上午已经在 issue 里面放了截图来说明这个问题和 8021 有区别的。
    yeze322
        30
    yeze322  
       2019-12-05 13:44:21 +08:00   2
    1. 这个 issue 本身,一眼看上去抓不住重点。没人会第一时间去看你的 code,正文需要有个 description 把问题概括一下,然后才是 repro steps, expected behaviors。尤其是你这个样例代码写的也很不精简。issue 里的 description 和 codepen 的注释内容互相穿插
    2. 提高一下措辞会改善你的 issue 被对待的态度,这后面两条回复,全是祈使句还给加粗了,单纯从语气上来看跟要打架一样,真的
    supersonic13
        31
    supersonic13  
       2019-12-05 15:07:08 +08:00
    @yukiloh 张博老师好流弊的
    sodatea
        32
    sodatea  
       2019-12-27 15:54:46 +08:00
    刚看到 posva 另外开了个 issue 来追踪这个问题: https://github.com/vuejs/vue/issues/10906
    xiangyuecn
        33
    xiangyuecn  
    OP
       2019-12-28 19:23:35 +08:00
    @sodatea 看样子此问题还是被他们关注了。 我差点都彻底忘了这事了 既然新开了 issue 那我就不继续管这个问题了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2530 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 06:23 PVG 14:23 LAX 23:23 JFK 02:23
    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