搜尋
首頁web前端Vue.jsVUE3開發基礎:使用Vue.js外掛程式封裝麵包屑元件

麵包屑(Breadcrumb)是一種常用的導航方式,在讓使用者了解自己所處位置的同時,也為使用者提供了返回上級選單的功能。本文將介紹如何使用Vue.js外掛程式封裝麵包屑元件。

一、準備工作

在使用Vue.js外掛程式封裝麵包屑元件之前,需要先安裝Vue.js及Vue CLI,並在專案中引入Vue Router。

二、建立麵包屑外掛程式

  1. 建立外掛程式檔案

#首先,在專案中建立用於封裝麵包屑元件的外掛文件,例如"breadcrumb.js"。

  1. 編輯外掛程式碼

在"breadcrumb.js" 中,我們可以使用Vue.extend() 方法建立一個麵包屑元件:

import Vue from 'vue'
import Breadcrumb from './Breadcrumb.vue'

const BreadcrumbConstructor = Vue.extend(Breadcrumb)

const breadcrumb = new BreadcrumbConstructor({
  el: document.createElement('div')
})

document.body.appendChild(breadcrumb.$el)

export default breadcrumb

在上述程式碼中,我們定義了一個名為BreadcrumbConstructor 的Vue 元件建構器,並透過Vue.extend() 方法將其包裝成一個可重複使用的元件。

  1. 定義麵包屑元件

現在,我們可以建立一個 "Breadcrumb.vue" 文件,用來定義我們的麵包屑元件。以下是一個基本的麵包屑元件範例:

<template>
  <nav aria-label="breadcrumb">
    <ol class="breadcrumb">
      <li class="breadcrumb-item" v-for="(item, index) in items" :key="index">
        <router-link :to="item.to">{{ item.label }}</router-link>
      </li>
    </ol>
  </nav>
</template>

<script>
export default {
  name: 'Breadcrumb',
  props: ['items']
}
</script>

<style>
/* 样式可根据需求进行调整 */
</style>

在上述程式碼中,我們使用了 Vue Router 中的 router-link 元件,為每個麵包屑項目新增了導覽連結。同時,我們也定義了一個名為 items 的 props,用於動態傳入麵包屑資料。

  1. 註冊外掛程式

最後,我們需要將麵包屑外掛程式註冊到我們的Vue 專案中,如下所示:

import breadcrumb from './breadcrumb.js'

Vue.use(breadcrumb)

現在,我們就可以在專案中使用Vue.use() 方法來安裝麵包屑插件了。在需要使用麵包屑的元件中,我們可以這樣呼叫插件:

<breadcrumb :items="breadcrumbItems"/>

在上述程式碼中,我們將麵包屑所需的資料作為 props 傳入麵包屑元件。

三、使用麵包屑插件

現在,我們已經成功地封裝了一個麵包屑元件的插件,接下來我們就可以在專案中使用它了。

  1. 建立頁面

我們可以建立一個基本的頁面,用來測試麵包屑元件的效果。例如:

<template>
  <div>
    <h3 id="页面一">页面一</h3>
    <ul>
      <li><router-link to="/page1/subpage1">子页面一</router-link></li>
      <li><router-link to="/page1/subpage2">子页面二</router-link></li>
    </ul>
  </div>
</template>

在上述程式碼中,我們建立了一個名為 "page1" 的頁面,其中包含兩個子頁面。接下來,我們將在麵包屑中展示頁面的層級關係。

  1. 設定路由

在 Vue Router 中,我們可以透過設定路由來實現麵包屑的自動產生。例如,在 "router.js" 檔案中,我們可以這樣定義路由:

import Vue from 'vue'
import Router from 'vue-router'
import Page1 from './views/Page1.vue'
import Subpage1 from './views/Subpage1.vue'
import Subpage2 from './views/Subpage2.vue'

Vue.use(Router)

export default new Router({
  mode: 'history',
  routes: [
    {
      path: '/page1',
      component: Page1,
      children: [
        {
          path: 'subpage1',
          component: Subpage1,
          meta: {
            breadcrumb: [
              { label: '页面一', to: '/page1' },
              { label: '子页面一', to: '/page1/subpage1' }
            ]
          }
        },
        {
          path: 'subpage2',
          component: Subpage2,
          meta: {
            breadcrumb: [
              { label: '页面一', to: '/page1' },
              { label: '子页面二', to: '/page1/subpage2' }
            ]
          }
        }
      ]
    }
  ]
})

在上述程式碼中,我們使用 "meta" 欄位來定義麵包屑項,將其儲存在路由中。在子路由中,我們可以透過嵌套"meta"欄位來新增更多麵包屑項目。

  1. 展示麵包屑

現在,我們可以在頁面中展示麵包屑了。我們可以透過以下方式取得目前頁面的麵包屑項目:

computed: {
  breadcrumbItems() {
    let crumbs = []

    let matched = this.$route.matched
    matched.forEach(route => {
      if (route.meta && route.meta.breadcrumb) {
        crumbs.push(...route.meta.breadcrumb)
      }
    })

    return crumbs
  }
}

在上述程式碼中,我們透過遍歷 $route.matched 屬性,取得頁面所匹配的所有路由項目。然後,我們對每個路由項目的 meta 欄位進行檢查,將其包含的麵包屑項目新增到 crumbs 陣列中。最後,我們將 crumbs 陣列傳回,以便在麵包屑組件中展示。

  1. 效果顯示

完成以上配置後,我們就可以在頁面中展示麵包屑了。以下是 "subpage1" 頁的麵包屑效果:

页面一 / 子页面一

當使用者點選麵包屑項目時,我們也可以使用 Vue Router 的路由跳轉功能,讓使用者快速回到上一層選單。

四、總結

在本文中,我們介紹如何使用Vue.js外掛程式封裝麵包屑元件。透過封裝,我們可以將麵包屑組件作為一個獨立的模組,使其在整個專案中更易於管理和重複使用。同時,麵包屑組件也為使用者提供了方便的導航和返回功能,提高了使用者體驗。

以上是VUE3開發基礎:使用Vue.js外掛程式封裝麵包屑元件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
atom中 40+ 个常用插件推荐分享(附插件安装方法)atom中 40+ 个常用插件推荐分享(附插件安装方法)Dec 20, 2021 pm 04:14 PM

本篇文章给大家分享40+ 个atom常用插件,并附上在atom中安装插件的方法,希望对大家有所帮助!

五个IntelliJ IDEA插件,高效编写代码五个IntelliJ IDEA插件,高效编写代码Jul 16, 2023 am 08:03 AM

人工智能AI是当前广受认可的未来趋势和发展方向。虽然有些人担心AI可能会取代所有的工作,但实际上只会取代那些重复性高、产出低的工作。因此,我们应该学会更加聪明地工作,而不是使劲努力地工作。本文介绍5个由AI驱动的Intellij插件,这些插件可以帮助你提高生产力,减少繁琐的重复性工作,让你的工作更加高效、便捷。1GithubCopilotGithubCopilot是由OpenAI和GitHub联合开发的一款人工智能代码辅助工具。它使用了OpenAI的GPT模型来分析代码上下文,预测并生成新的代码

vscode插件分享: 6个Vue3开发必备插件vscode插件分享: 6个Vue3开发必备插件Dec 09, 2022 pm 08:36 PM

本篇文章给大家整理分享 6 个 Vue3 开发必备的 VSCode 插件,可以直接用过 VSCode 的插件中心直接安装使用,希望对大家有所帮助!

用 VSCode 写 Python,这14个插件不容错过!用 VSCode 写 Python,这14个插件不容错过!May 24, 2023 pm 05:19 PM

可以说,VisualStudioCode这个编辑器,让微软在开源社区赢回了王者段位,要知道全球2400万开发者中有1400万称VSCode为自己的家,再加上GitHub和VSCode的结合,几乎所有的程序员的都离不开VSCode,不过,VSCode如此优秀,值得每个程序员使用,甚至我觉得非程序员都可以用它来码字。如果你还没用过VSCode,那访问这里安装[1]一个吧,很可能就打开了一个新世界。今天分享14个非常实用VSCode插件,可以让你写代码如同神一般,尤其是

2023年最新最全的VScode插件推荐2023年最新最全的VScode插件推荐Jan 24, 2023 am 05:30 AM

这篇文章主要介绍了这么多年来我在使用 VSCode 过程中用到的一些不错的插件。这些VSCode插件,帮你打造地表最强IDE!

【吐血总结】23个VSCode 插件,助你提高开发效率和美观性【吐血总结】23个VSCode 插件,助你提高开发效率和美观性Mar 10, 2022 pm 08:01 PM

本篇文章给大家总结了23个各种功能的VSCode 插件,可以帮助开发者提高开发效率和美观性,希望对大家有所帮助!

浏览器增强版ChatGPT无敌了?超强插件Monica,能聊能写效率Max浏览器增强版ChatGPT无敌了?超强插件Monica,能聊能写效率MaxMay 03, 2023 pm 06:58 PM

提起Monica,你会想到什么?是老友记里的主角之一Monica·Geller,一个热心肠的女主人形象;还是心跳文学部里的疯疯癫癫的Monika?或者,最近爆火的Chrome插件——Monica。它的功能实在是太强大了,用完一次保你爱不释手。毕竟,搭载了ChatGPT的网页助手,能是俗物吗?Monica功能大赏首先明确一点,Monica是ChatGPT在网页上的应用,换句话说,Monica就是靠着ChatGPTAPI的强大功能才厉害。而仔细看看Chrome商店中的介绍,我们就会发现Monica真

如虎添翼,六个让你效率翻倍的ChatGPT插件如虎添翼,六个让你效率翻倍的ChatGPT插件May 17, 2023 pm 02:28 PM

ChatGPT是一个超强的AI应用程序,OpenAI已经发布的GPT-4引起了更广泛的关注。ChatGPT是由OpenAI开发的专门从事对话的AI聊天机器人,其主要目标是使AI系统更自然地进行互动。大家可能都已经尝试过ChatGPT,今天讲一讲与这个全新工具互动的不同方法。本文总结了6个可以使ChatGPT成为日常助手(甚至超越日常助手)的工具!1.【GoogleChromeExtension】在任何地方使用ChatGPT想在任何地方轻松地使用ChatGPT吗?那么你可以使用Chrome插件(h

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),