關於Vue中根組件與組件樹的理解

在觀看了b站的關於Vue3的教學影片後,對Vue的根組件與組件樹進行簡單的總結下

一、實例化Vue應用

// 此時,app就是一個Vue應用的實例,或者說是一個對象
const app = Vue.createApp({})

需要注意的是這個app並不是根組件,而是Vue應用的實例

二、根組件的掛載

了解組件的話,我們知道在組件中,一般都會有一個template屬性,那麼根組件的template是什麼呢?這裡就需要提到我們的掛載了

<div id="app"></div>
<script>
app.mount("#app"); //這樣其實就是表示根組件的template就是上面的id為app的標籤內的內容,修改其中的內容,就是修改template的內容。
</script>

而我們要找的根組件其實就是app.mount()的返回

const root_component = app.mount("#app")

三、組件樹的認識

可以通過一個簡單的例子來了解一下

<div id="app">
  <component1></component1>
  <component1></component1>
</div>
<script>
  //根組件
  const app = Vue.createApp({})

  app.component("component1",{
    template:`
    <h1>hello component</h1>
    <component2></component2>
  `
  })

  app.component("component2",{
    template:`
      <h2>i am component2</h2>
    `
  }

  app.mount("#app") //注意這裡要寫在最後,不然組件無法生效
</script>

包含關係類似於下面的第一張圖
組件圖
而其中的樹狀關係可以表示如下:
組件樹

四、結語

由於是初次學習,也許有不正確的地方,還請大家能夠指出,共同學習,謝謝。

Tags: