Maison > interface Web > Voir.js > Comment implémenter la disposition des conteneurs vue3 et le routage de navigation

Comment implémenter la disposition des conteneurs vue3 et le routage de navigation

WBOY
Libérer: 2023-05-28 20:08:32
avant
1240 Les gens l'ont consulté

Container Layout

Commentez ou supprimez le contenu lié à HelloWorld dans App.vue, puis copiez la mise en page fournie par element-plus et placez-la dans App.vue

#🎜 🎜# La mise en page est la barre de menu à gauche, la zone de contenu à droite et en haut à droite, un style backend de gestion typique

<template>
  <!-- <img alt="Vue logo" src="./assets/logo.png"> -->
  <div class="common-layout">
    <el-container>
      <el-aside width="200px">
        <Menu></Menu>
      </el-aside>
      <el-container>
        <el-header height="20px">Header</el-header>
        <el-main>
          <router-view></router-view>
        </el-main>
      </el-container>
    </el-container>
  </div>
<!-- 
  <div>
      <p>
        <router-link to="/home">Go to Home</router-link>
        

        <router-link to="/about">Go to about</router-link>
        <router-view></router-view>
      </p>
    </div>
  <HelloWorld msg="Welcome to Your Vue.js App"/> -->
</template>
<script>
// import HelloWorld from &#39;./components/HelloWorld.vue&#39;
import Menu from &#39;./components/Menu.vue&#39;
export default {
  name: &#39;App&#39;,
  components: {
    // HelloWorld
    Menu
  }
}
</script>
Copier après la connexion

Il y a un composant Menu.vue dans le code ci-dessus, qui doit être créé et le contenu sera ajouté plus tard# 🎜🎜#

Route definition

Créez un nouveau fichier routes.js dans le répertoire src et écrivez la liste de routes pour faciliter l'utilisation des autres composants

const routes = [
    { path: "/home", name: &#39;home&#39;, label: &#39;首页&#39;, component: () => import(&#39;./components/home.vue&#39;), },
    { path: "/about", name: &#39;about&#39;, label: &#39;关于&#39;, component: () => import(&#39;./components/about.vue&#39;), },
]
export default routes
Copier après la connexion

Le contenu n'a pas changé. Extrayez simplement les routes dans router.js et écrivez un fichier séparé

router.js pour introduire et utiliser les routes#🎜🎜 #

import { createRouter, createWebHashHistory } from &#39;vue-router&#39;
import routes from &#39;./routes&#39;
const router = createRouter({
    history: createWebHashHistory(),
    routes: routes,
})
export default router
Copier après la connexion

left menu

Créez une nouvelle page Menu.vue dans le répertoire des composants, puis copiez la barre latérale dans le composant de menu dans element-plus.

<template>
  <el-row class="tac">
    <el-col :span="24">
      <h6 class="mb-2">Default colors</h6>
      <el-menu default-active="2" class="el-menu-vertical-demo" @open="handleOpen" @close="handleClose">
        <el-sub-menu index="1">
          <template #title>
            <el-icon>
              <location />
            </el-icon>
            <span>Navigator One</span>
          </template>
          <router-link v-for="(item, index) in routes" :to="{ name: item.name }" :key="item.name">
            <el-menu-item :index="index">
              <span v-text="item.label"></span>
            </el-menu-item>
          </router-link>
        </el-sub-menu>
        <el-menu-item index="2">
          <el-icon>
            <icon-menu />
          </el-icon>
          <span>Navigator Two</span>
        </el-menu-item>
        <el-menu-item index="3" disabled>
          <el-icon>
            <document />
          </el-icon>
          <span>Navigator Three</span>
        </el-menu-item>
        <el-menu-item index="4">
          <el-icon>
            <setting />
          </el-icon>
          <span>Navigator Four</span>
        </el-menu-item>
      </el-menu>
    </el-col>
  </el-row>
</template>
<script>
import {
  Document,
  Menu as IconMenu,
  Location,
  Setting,
} from &#39;@element-plus/icons-vue&#39;
import routes from &#39;../routes&#39;
export default {
  name: &#39;Menu&#39;,
  components: { Document, IconMenu,Location, Setting },
  data() {
    return {
      routes: routes,
    }
  },
  methods: {
    handleOpen() {
      console.log("111")
    },
    handleClose() {
      console.log("222")
    },
  }
}
</script>
Copier après la connexion
@element-plus/icons-vue Ce package doit être installé (npm install @element-plus/icons-vue)

Les exemples sur element-plus le site officiel est écrit avec la syntaxe ts+setup, ici nous la modifions en syntaxe js+responsive

Changez la largeur de la colonne en : span="24" ou plus Si la largeur de la colonne est trop petite, vous. trouvera une ligne grise au milieu de la police# 🎜🎜#

Introduisez la liste de routes définie routes.js et bouclez le contenu dans le lien du routeur

L'effet de course est le suivant# 🎜🎜#

#🎜🎜 #

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal