You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过CDN使用VueJS:为何添加组件会替换整个模板?

Vue CDN模式下挂载后仅显示组件不显示原有DOM内容的原因

这是因为Vue挂载到目标元素时,默认会完全替换目标元素的内部HTML,而不是在原有内容基础上追加组件。

你把应用挂载到#bookingApp时,Vue会清空这个div里的所有原有内容(包括那个写着“Hello there”的div),然后只渲染根组件的内容——也就是你注册的<select-service>组件。所以只有组件内容能显示,移除组件后,Vue不再替换目标元素内容,原有div才会显现。

解决办法

有两种简单方式实现组件和原有内容共存:

  • 方式一:新增独立挂载容器
    在#bookingApp里加一个空的div作为Vue的挂载目标,让原有内容和Vue组件分离开:

    <div id="bookingApp">
      <!-- 原有内容保留 -->
      <div>Hello there</div>
      <!-- 空容器给Vue挂载 -->
      <div id="vue-app"></div>
    </div>
    

    JS代码修改挂载目标:

    const SelectService = {
      template: '<div>In Here!!</div>'
    }
    
    Vue.createApp({
      components: { SelectService }
    }).mount('#vue-app')
    
  • 方式二:把原有内容纳入Vue模板
    直接将“Hello there”的内容写到根组件的模板里,让Vue统一渲染:

    const SelectService = {
      template: '<div>In Here!!</div>'
    }
    
    Vue.createApp({
      components: { SelectService },
      template: `
        <select-service></select-service>
        <div>Hello there</div>
      `
    }).mount('#bookingApp')
    

内容的提问来源于stack exchange,提问作者MG123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 12:15:32