vue 2.0 mounted 会执行两次问题原因(有个人解释)

20180828内容补充:
我的代码目录结构是这样的

-src--conponents_mobile---bb.vue--conponents_pc---bb.vue

然后通过路由判断是移动还是pc进入,使用的不同文件夹里的组件,是否有可能两个组件文件夹中有两个同名的文件才会看上去加载两次?

<template>
    <div class="a">
        <bb v-show='registerComponentShow'></bb>
        <cc v-show='projectComponentShow'></cc>
    </div></template>

如上面结构,我的一个组件 bb 里面的 mounted 生命周期被调用了两次,我就想是否是因为这个组件渲染了两次?
然后我改成了如下

<template>
    <div class="a">
        <bb v-if='registerComponentShow'></bb>
        <cc v-if='projectComponentShow'></cc>
    </div></template>

这样 bb 里面的 mounted 就不会调用两次了。

我的问题是,对于一个组件,假如给它加上了 v-show 是否就是在页面渲染的时候,第一次渲染 <bb></bb> 然后再判断 v-show 是否是 true,是真的就再次渲染,所以看上去 mounted 就执行了两次了。

望不吝指教,谢谢。


慕哥9229398
浏览 6388回答 2
2回答

Smart猫小萌

哥们,mounted在生命周期中只会执行一次。你的问题也没明白。简单来说v-if==false,代码不会执行。v-show会执行,这里说的是包在判断条件中的代码。其次你可以检测下代码是否有其他原因引起的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript