mip-project / mip

MIT License
11 stars 1 forks source link

添加 transition 标签之后会报错 this.$vnode is undefined #15

Closed easonyq closed 6 years ago

easonyq commented 6 years ago

为了屏蔽 mip-router 的影响,我直接在 mip 项目的 examples/simple 中进行修改。修改 index.html ,增加一段 <transition> 的使用:

<ul id="demo">
    <!-- <item class="item" :model="treeData">
    </item> -->
    <transition>
        <div v-if="treeData"></div>
    </transition>
</ul>

运行后报错如下:

image

核心原因在于 this.$vnode 值为 undefined,如下:

image

我到 vue 官方的模板代码库 vuejs-templates/simple 找了个最简单的单 HTML 的模板,在 #app 节点的最后增加:

<transition>
  <div v-if="greeting.indexOf('js') !== -1">greeting contains 'js'</div>
</transition>

可以正常运行,没有报错。如下:

image

总结

dist/mip.js<transition> 标签支持有点问题,官方 vue.js 正常。

另外, <transition> 对于 mip-router 进行页面切换时的动画非常重要。