vue中的异步组件和v-if有什么不同?

作者站长头像
站长
· 阅读数 14

对于v-if来说,可以用它来控制组件的生成和销毁,那么对于父子模块来说,如果我想要让子组件满足一定条件下再进行创建,可以使用v-if的方式,通过日志可以发现,子组件只有在conditiontrue的时候才会加载父组件中

<Content/>
<div v-if="condition">
  <Child/>
</div>

import Child from './Child'
components: {
    Child
}

那么,我看网上帖子,对于异步组件,为什么还要使用动态导入的方式做进一步处理呢?vue2

<Content/>
<div v-if="condition">
  <Child/>
</div>

components: {
    Child: () => import("./Child")
}

这两种方式有什么区别吗?它们实现的效果不都是父组件先加载Content组件,当conditiontrue的时候,再去加载Child组件吗?

参考链接异步组件vue官方文档-异步组件

回复
1个回答
avatar
test
2024-07-14

虽然可能两者都满足了你的业务需求,但他们从概念上就是不同的,就好比苹果和走路一样,虽然可以在走路的时候吃苹果,但他俩不是一个概念,没有可比性

异步组件也是组件,与寻常组件不同的是,他单独打包成一个js,在组件加载的时候才会去加载这个js文件,这个过程是异步的,等js加载完成才会去渲染这个组件

v-if是一个指令,你可以当成if语句去看

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容