日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)VUE3教程:Vue3.0應(yīng)用&組件實(shí)例

#創(chuàng)建一個應(yīng)用實(shí)例

每個 Vue 應(yīng)用都是通過用 createApp 函數(shù)創(chuàng)建一個新的應(yīng)用實(shí)例開始的:

泗水網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司于2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運(yùn)維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。

const app = Vue.createApp({ /* 選項 */ })

該應(yīng)用實(shí)例是用來在應(yīng)用中注冊“全局”組件的。我們將在后面的指南中詳細(xì)討論,簡單的例子:

const app = Vue.createApp({})
app.component('SearchInput', SearchInputComponent)
app.directive('focus', FocusDirective)
app.use(LocalePlugin)

應(yīng)用實(shí)例暴露的大多數(shù)方法都會返回該同一實(shí)例,允許鏈?zhǔn)剑?/p>

Vue.createApp({})
  .component('SearchInput', SearchInputComponent)
  .directive('focus', FocusDirective)
  .use(LocalePlugin)

你可以在 API 參考 中瀏覽完整的應(yīng)用 API。

#根組件

傳遞給 createApp 的選項用于配置根組件。當(dāng)我們掛載應(yīng)用時,該組件被用作渲染的起點(diǎn)。

一個應(yīng)用需要被掛載到一個 DOM 元素中。例如,如果我們想把一個 Vue 應(yīng)用掛載到

,我們應(yīng)該傳遞 #app

const RootComponent = { /* 選項 */ }
const app = Vue.createApp(RootComponent)
const vm = app.mount('#app')

與大多數(shù)應(yīng)用方法不同的是,mount 不返回應(yīng)用本身。相反,它返回的是根組件實(shí)例。

雖然沒有完全遵循 MVVM 模型_blank_nofollow,但是 Vue 的設(shè)計也受到了它的啟發(fā)。因此在文檔中經(jīng)常會使用 vm (ViewModel 的縮寫) 這個變量名表示組件實(shí)例。

盡管本頁面上的所有示例都只需要一個單一的組件就可以,但是大多數(shù)的真實(shí)應(yīng)用都是被組織成一個嵌套的、可重用的組件樹。舉個例子,一個 todo 應(yīng)用組件樹可能是這樣的:

Root Component
└─ TodoList
   ├─ TodoItem
   │  ├─ DeleteTodoButton
   │  └─ EditTodoButton
   └─ TodoListFooter
      ├─ ClearTodosButton
      └─ TodoListStatistics

每個組件將有自己的組件實(shí)例 vm。對于一些組件,如 TodoItem,在任何時候都可能有多個實(shí)例渲染。這個應(yīng)用中的所有組件實(shí)例將共享同一個應(yīng)用實(shí)例。

我們會在稍后的組件系統(tǒng)章節(jié)具體展開。不過現(xiàn)在,你只需要明白根組件與其他組件沒什么不同,配置選項是一樣的,所對應(yīng)的組件實(shí)例行為也是一樣的。

#組件實(shí)例 property

在前面的指南中,我們認(rèn)識了 data property。在 data 中定義的 property 是通過組件實(shí)例暴露的:

const app = Vue.createApp({
  data() {
    return { count: 4 }
  }
})


const vm = app.mount('#app')


console.log(vm.count) // => 4

還有各種其他的組件選項,可以將用戶定義的 property 添加到組件實(shí)例中,例如 methods,props,computed,injectsetup。我們將在后面的指南中深入討論它們。組件實(shí)例的所有 property,無論如何定義,都可以在組件的模板中訪問。

Vue 還通過組件實(shí)例暴露了一些內(nèi)置 property,如 $attrs$emit。這些 property 都有一個 $ 前綴,以避免與用戶定義的 property 名沖突。

#生命周期鉤子

每個組件在被創(chuàng)建時都要經(jīng)過一系列的初始化過程——例如,需要設(shè)置數(shù)據(jù)監(jiān)聽、編譯模板、將實(shí)例掛載到 DOM 并在數(shù)據(jù)變化時更新 DOM 等。同時在這個過程中也會運(yùn)行一些叫做生命周期鉤子的函數(shù),這給了用戶在不同階段添加自己的代碼的機(jī)會。

比如 created 鉤子可以用來在一個實(shí)例被創(chuàng)建之后執(zhí)行代碼:

Vue.createApp({
  data() {
    return { count: 1}
  },
  created() {
    // `this` 指向 vm 實(shí)例
    console.log('count is: ' + this.count) // => "count is: 1"
  }
})

也有一些其它的鉤子,在實(shí)例生命周期的不同階段被調(diào)用,如 mounted、updated 和 unmounted。生命周期鉤子的 this 上下文指向調(diào)用它的當(dāng)前活動實(shí)例。

TIP

不要在選項 property 或回調(diào)上使用箭頭函數(shù),比如 created: () => console.log(this.a)vm.$watch('a', newValue => this.myMethod())。因為箭頭函數(shù)并沒有 this,this 會作為變量一直向上級詞法作用域查找,直至找到為止,經(jīng)常導(dǎo)致 Uncaught TypeError: Cannot read property of undefinedUncaught TypeError: this.myMethod is not a function 之類的錯誤。

#生命周期圖示

下圖展示了實(shí)例的生命周期。你不需要立馬弄明白所有的東西,不過隨著你的不斷學(xué)習(xí)和使用,它的參考價值會越來越高。


標(biāo)題名稱:創(chuàng)新互聯(lián)VUE3教程:Vue3.0應(yīng)用&組件實(shí)例
鏈接地址:http://m.5511xx.com/article/dpdsdoo.html