最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue.js組件間的循環(huán)引用方法示例

 更新時間:2017年12月27日 10:34:59   作者:17biu  
組件(Component)是 Vue.js 最強大的功能之一。 組件可以擴展 HTML 元素,封裝可重用的代碼。下面這篇文章主要給大家介紹了關(guān)于Vue.js組件間循環(huán)引用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。

什么是組件:

眾所周知組件是Vue.js最強大的功能之一。組件可以擴展HTML元素,封裝可重用的代碼。在較高層面上,組件是自定義的元素,Vue.js的編譯器為它添加特殊功能。在有些情況下,組件也可以是原生HTML元素的形式,以is特性擴展。下面話不多說了,來一起看看本文的正文內(nèi)容。

引言

寫了大大小小不少基于vue的項目,但是基本沒用到過組件循環(huán)引用的知識。

為了查缺補漏,照著官方文檔擼一個DEMO:組件之間的循環(huán)引用

本人的運行版本為 vue-cli@2.8.1,啟用項目后,將以下 js 文件和 vue 文件放置在相應(yīng)的目錄中運行。

main.js

import Vue from 'vue'
import App from './App'
new Vue({
 el: '#app',
 template: '<App/>',
 components: { App }
})

main.js 導(dǎo)入 App 組件,并在 components 中注冊 App 組件。

App.vue

<template>
 <div id="app">
 <li v-for="folder in folders">
 <tree-folder v-bind:folder="folder"></tree-folder>
 </li>
 </div>
</template>
<script>
 import TreeFolder from './components/tree-folder'
 export default {
 data: function () {
 return {
 folders: [
  {
  name: 'folder1',
  children: [{
  name: 'folder1 - folder1',
  children: [{
  name: 'folder1 - folder1 - folder1'
  }]
  }, {
  name: 'folder1 - folder2',
  children: [{
  name: 'folder1 - folder2 - folder1'
  }, {
  name: 'folder1 - folder2 - folder2'
  }]
  }]
  },
  {
  name: 'folder 2',
  children: [{
  name: 'folder2 - folder1',
  children: [{
  name: 'folder2 - folder1 - folder1'
  }]
  }, {
  name: 'folder2 - folder2',
  children: [{
  name: 'folder2-content1'
  }]
  }]
  },
  {
  name: 'folder 3',
  children: [{
  name: 'folder3 - folder1',
  children: [{
  name: 'folder3 - folder1 - folder1'
  }]
  }, {
  name: 'folder3 - folder2',
  children: [{
  name: 'folder3-content1'
  }]
  }]
  }
 ]
 }
 },
 components: {
 TreeFolder
 }
 }
</script>

App 組件導(dǎo)入 TreeFolder 組件,并在 components 中注冊 TreeFolder 組件。

components/tree-folder.vue

<template>
 <p>
 <span>{{ folder.name }}</span>
 <tree-folder-contents :children="folder.children"></tree-folder-contents>
 </p>
</template>
<script>
 // 官方文檔:「在我們的例子中,將 tree-folder 組件做為切入起點。我們知道制造矛盾的是 tree-folder-contents 子組件,所以我們在 tree-folder 組件的生命周期鉤子函數(shù) beforeCreate 中去注冊 tree-folder-contents 組件」
 export default {
 props: ['folder'],
 data: function () {
  return {}
 },
 beforeCreate: function () {
 // 官方文檔給出的是require
 // this.$options.components.TreeFolderContents = require('./tree-folder-contents.vue')
 // 在基于vue-cli@2.8.1按照上面的寫法還是會報錯
 // Failed to mount component: template or render function not defined.
 // 所以我們應(yīng)該改為基于es6的寫法異步加載一個組件如下
  this.$options.components.TreeFolderContents = () => import('./tree-folder-contents.vue')
 }
 }
</script>

TreeFolder 組件導(dǎo)入 TreeFolderContents 組件,并在 components 中注冊 TreeFolderContents 組件。

components/tree-folder-contents.vue

<template>
 <ul>
 <li v-for="child in children">
  <tree-folder v-if="child.children" :folder="child"></tree-folder>
  <span v-else>{{ child.name }}</span>
 </li>
 </ul>
</template>
<script>
 import TreeFolder from './tree-folder'
 export default {
 props: ['children'],
 components: {
  TreeFolder
 }
 }
</script>

TreeFolderContents 組件又導(dǎo)入 TreeFolder 組件,并在 components 中注冊 TreeFolder 組件,產(chǎn)生了循環(huán)引用。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Vue-cli4 配置 element-ui 按需引入操作

    Vue-cli4 配置 element-ui 按需引入操作

    這篇文章主要介紹了Vue-cli4 配置 element-ui 按需引入操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • element-plus報錯ResizeObserver?loop?limit?exceeded解決辦法

    element-plus報錯ResizeObserver?loop?limit?exceeded解決辦法

    這篇文章主要給大家介紹了關(guān)于element-plus報錯ResizeObserver?loop?limit?exceeded的解決辦法,文中通過代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Electron+Vue實現(xiàn)截屏功能的兩種方式

    Electron+Vue實現(xiàn)截屏功能的兩種方式

    在Electron環(huán)境下,截屏功能相對強大,可以通過desktopCapturer獲取應(yīng)用視頻流,實現(xiàn)對整個應(yīng)用的截屏,而在非Electron環(huán)境下,截屏功能受限,只能截取瀏覽器內(nèi)容,且存在iframe或base64圖片加載問題
    2024-10-10
  • 詳解Vue中使用插槽(slot)、聚類插槽

    詳解Vue中使用插槽(slot)、聚類插槽

    這篇文章主要介紹了Vue中使用插槽(slot)、聚類插槽,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 淺談vue3中effect與computed的親密關(guān)系

    淺談vue3中effect與computed的親密關(guān)系

    這篇文章主要介紹了淺談vue3中effect與computed的親密關(guān)系,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • vue中vant組件樣式失效問題及解決

    vue中vant組件樣式失效問題及解決

    這篇文章主要介紹了vue中vant組件樣式失效問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue全局事件總線你了解嗎

    Vue全局事件總線你了解嗎

    這篇文章主要為大家詳細介紹了Vue全局事件總線,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Vue3中進行頁面局部刷新組件刷新的操作方法

    Vue3中進行頁面局部刷新組件刷新的操作方法

    這篇文章主要介紹了Vue3中進行頁面局部刷新組件刷新的操作方法,本文結(jié)合示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • vue 點擊其他區(qū)域關(guān)閉自定義div操作

    vue 點擊其他區(qū)域關(guān)閉自定義div操作

    這篇文章主要介紹了vue 點擊其他區(qū)域關(guān)閉自定義div操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vue.js指令v-model實現(xiàn)方法

    vue.js指令v-model實現(xiàn)方法

    這篇文章主要為大家詳細介紹了vue.js指令v-model實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12

最新評論

佛坪县| 晴隆县| 广饶县| 闻喜县| 义乌市| 修水县| 澜沧| 娱乐| 河津市| 南开区| 新竹县| 凤台县| 海淀区| 册亨县| 民乐县| 沂源县| 长葛市| 泾阳县| 阜新| 隆昌县| 东乡族自治县| 加查县| 巴中市| 酒泉市| 慈利县| 温泉县| 栾川县| 七台河市| 柘城县| 德清县| 开平市| 朝阳市| 成武县| 台江县| 建阳市| 防城港市| 新龙县| 阳信县| 紫金县| 渝北区| 铜陵市|