Skip to content

refactor: 移除timeout魔法 #21

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
May 16, 2018
Merged

refactor: 移除timeout魔法 #21

merged 4 commits into from
May 16, 2018

Conversation

jkzing
Copy link
Contributor

@jkzing jkzing commented May 8, 2018

做了两件事:

不知道有没有其他情况没有考虑到


close Meituan-Dianping/mpvue#245
close Meituan-Dianping/mpvue#365

@jkzing jkzing changed the base branch from master to develop May 8, 2018 04:56
@jkzing
Copy link
Contributor Author

jkzing commented May 14, 2018

大佬们倒是review下PR呀

@jyootai
Copy link
Member

jyootai commented May 14, 2018

这个貌似还是依然未解决hot reload 问题

@jkzing
Copy link
Contributor Author

jkzing commented May 14, 2018

@jyootai 什么情况下不行,别貌似啊...

@anchengjian
Copy link
Member

@jkzing 感谢大佬的 PR ,上周五由于我们大团队团建,所以就没有合 PR 发版本,这周五测试通过了再合并发版本。

@jyootai
Copy link
Member

jyootai commented May 15, 2018

@jkzing 还有存在slot 嵌套不会热更新的问题

@jkzing
Copy link
Contributor Author

jkzing commented May 15, 2018

@jyootai 你说的是这种情况吗:

<div class="userinfo-nickname">
  <card :text="userInfo.nickName">
    <hello>
      <span>hi</span>
    </hello>
  </card>
</div>

我这边修改hi的时候是能正常更新的

(如果不是这个情况能不能麻烦贴下代码....)

@jyootai
Copy link
Member

jyootai commented May 15, 2018

这种:

// home
<div class="home-page">
  <A></A>
</div>

// A
<div class="a-comp">
  <B>
    <div>修改此处</div>
  </B>
</div>

// B
<div class="b-comp">
  <slot></slot>
</div>

@jkzing
Copy link
Contributor Author

jkzing commented May 16, 2018

@jyootai 没问题啊...同学你是不是没 npm link mpvue-loader


帮你建了个repo,你可以用这个测试: https://github.com/jkzing/mpvue-slots-demo

PS:有已知问题是如果新增组件的话不能正确 reload,不过这也不是这个 PR 要解决的事

@jyootai
Copy link
Member

jyootai commented May 16, 2018

用你的测试是可以的, 说明不是我机子问题. 我这也安装你的提交测试了, 也确实是不能刷新.

这周看看其他测试, 没有问题就合入发版. 之后在看看有没其他同学在复现这个问题.

感谢大佬 PR 👍

@hucq hucq merged commit 4933275 into mpvue:develop May 16, 2018
@mdsb100
Copy link

mdsb100 commented May 18, 2018

如果确认修复了能发版么,我每次黑魔法真的超累

@jkzing
Copy link
Contributor Author

jkzing commented May 18, 2018

@mdsb100 正式版发布前可以先用npm install @jkz/mpvue-loader

@mdsb100
Copy link

mdsb100 commented May 18, 2018

嗯 好的。谢谢大佬!

@jkzing jkzing deleted the async-template branch May 21, 2018 03:14
@mdsb100
Copy link

mdsb100 commented May 21, 2018

升级了以后发现props都绑不上去了

改回1.0.13就好了,还是自己记count的方式

@jkzing

@steinslin
Copy link
Member

@mdsb100 能否给个示例,不太明白你的意思,我本地测试觉得没问题

@jkzing
Copy link
Contributor Author

jkzing commented May 21, 2018

@mdsb100

props都绑不上去了

这是什么意思...能不能去 https://github.com/jkzing/mpvue-slots-demo 提个PR重现下你的问题

@mdsb100
Copy link

mdsb100 commented May 21, 2018

@jkzing 我去试试
先描述下现象

<button class="btn-middle-normal timelineSaveButton" :disabled="shareButtonDisabled" open-type="share">{{buttonText}}</button>

buttonText根本没绑上去

@steinslin
Copy link
Member

@mdsb100 我试了下输出是这样的,是正常的

<button class="_button data-v-21261b62 btn-middle-normal timelineSaveButton" disabled="{{shareButtonDisabled}}" open-type="share">{{buttonText}}</button>

@mdsb100
Copy link

mdsb100 commented May 21, 2018

我在尝试在demo上重现,稍等

@mdsb100
Copy link

mdsb100 commented May 21, 2018

@jkzing 我在demo上把我们项目中的代码组件放了进去,发现是好的。
我现在不知道问题出在哪里,能不能帮助我,给我点建议?

我对一下package.json的依赖。

现在我能想到的区别是:
demo是直接用的component
我们项目用的是内部发的cnpm的component

不知道有没有关系。

@mdsb100
Copy link

mdsb100 commented May 21, 2018

@jkzing 能不能提供一个联系方式 微信orQQ
我现在有3个项目。

  • 小程序项目 不行
  • slots-demo 可以
  • ui-demo 可以

@mdsb100
Copy link

mdsb100 commented May 21, 2018

我就是在demo里重现不出,在小程序里主项目里修复不了。
1526887625368
1526887676293

@mdsb100
Copy link

mdsb100 commented May 21, 2018

和cnpm应该没关系。

似乎主项目里面,模板找错了。
image

点击右边这个,弹出的是左边的样式,我debugger过,代码走的是不同的组件,样式却是同一个。

两个都是相同的父组件,里面的slots不同

@jkzing
Copy link
Contributor Author

jkzing commented May 21, 2018

@mdsb100 你得想办法在我给你的 demo repo 里重现,这样我才能帮你找问题。
只有截图帮不了你啊...

@mdsb100
Copy link

mdsb100 commented May 21, 2018

@jkzing

确定我每次重现了。
是package-lock.json的问题。为了升级方便,我做了。

rm -fr node_modules
rm package-lock.json
rm -fr dist
npm install

删了package-lock.json就有问题了。

我不知道这算不算bug?我不记得quick-start那个template有没有默认提供lock文件,如果是npm install后生成的,那大家都可能遇到问题。
我想起来了,我是因为npm install --registry='xxx'出现问题解决不了,删了package-lock.json后能正常安装,才这样做了。

重现的demo
https://github.com/mdsb100/mpvue-slots-demo

@jkzing
Copy link
Contributor Author

jkzing commented May 21, 2018

@mdsb100
你给的这个 repro 我用 mpvue-loader@1.0.13 跑结果也是一样的啊...

@mdsb100
Copy link

mdsb100 commented May 21, 2018

我确定了 1.0.11是好的。1.0.12是挂的。
"mpvue": "1.0.11"
"mpvue-template-compiler": "1.0.11"

@mdsb100
Copy link

mdsb100 commented May 21, 2018

其他版本,我没来得及试。如果最新mpvue是好的,应该就是好的吧。

还有一点,我估计我们内部cnpm的镜像没有同步到最新的库吧。

@mdsb100
Copy link

mdsb100 commented May 21, 2018

我看了下npm。mpvue最新是1.0.12。所以应该是不好的。
所以不是大佬您的问题。我先锁死版本号解决问题。
我应该去mpvue提issue。谢谢大佬了。

@F-loat
Copy link
Member

F-loat commented May 21, 2018

Meituan-Dianping/mpvue#427 这个问题?当时我有测过,mpvue@1.0.11 在某些情况下也会出错,那个 pr 的改法看来还是有问题。。

@steinslin
Copy link
Member

@mdsb100
Copy link

mdsb100 commented May 21, 2018

soga。谢谢楼上各位大佬了。

@jkzing
Copy link
Contributor Author

jkzing commented May 21, 2018

OK,既然是 mpvue 的问题,就在那边继续讨论吧😅

BugKun pushed a commit to BugKun/mpvue-loader that referenced this pull request Jun 1, 2020
* refactor: use async strategy intead of timeout

* refactor: remove timeout in createSlotWxml

* refactor: use compilation hook to create slots file
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants