vue-router当中内置component标签(组件)的使用

6 篇文章 0 订阅

说明

  • component 为vue内置特殊元素,一个用于渲染动态组件或元素的’元组件’
  • 具体可以看@官网

使用

  • 大概使用就是使用component当中的属性is,这个is可以传入字符串,也可以传入组件

    • <component :is="showChildA"/> 其中 showChildA为一个组件
  • 示例

    • 根据不同的参数来决定渲染哪一个组件

App.vue

<template>
  <div>
    我是主页
    <component :is="showComponent"></component>
  </div>
</template>

<script setup>
import {ref,computed} from "vue";
import ChildA from "./pages/ChildA.vue"
import ChildB from "./pages/ChildB.vue"
const componentAll = {
 son1:ChildA,
 son2:ChildB,
}

const receiveTitle = ref('son1');//假设从别的地方接收到一个属性

const showComponent = computed(()=>{
  return componentAll[receiveTitle.value]
})
console.log(showComponent);
</script>

<style scoped>
</style>

ChildA.vue

<template>
  <div>
    <h1>我是ChildA</h1>
  </div>
</template>

<script setup>
</script>

ChildB.vue

<template>
  <div>
    <h1>我是ChildB</h1>
  </div>
</template>

<script setup>
</script>

Vue Router 中,你可以为路由对象(`Route`)添加自定义字段,这些字段通常不是 Vue Router 内置的一部分,但可以帮助你扩展或组织路由的状态和行为。这可以通过以下几种方式实现: 1. 使用 `meta` 属性: ```javascript const router = new VueRouter({ routes: [ { path: '/profile', component: ProfileComponent, meta: { // 自定义元数据 isPrivate: true, // 假设这个字段用于标记是否私人用户页面 requiresAuth: true // 需要登录才能访问 } } ] }); // 在组件中获取自定义元数据 this.$route.meta.isPrivate; ``` 2. 使用插槽(Slot): 如果你需要动态地为每个路由配置内容,可以在 `<router-view>` 元素上设置一个插槽,并根据 `meta` 对象中的值选择不同的子组件。 3. 使用全局导航守卫 (Guards): 在 `beforeEach`, `afterEach`, 或其他导航守卫中,你可以根据 `this.$route.meta` 来控制路由的行为,例如权限检查、数据加载等。 4. 使用自定义指令或组件属性: 可以为你的组件创建自定义指令或者属性,然后在路由配置时应用它们,比如通过修改组件的 props 或者行为。 记得在实际项目中合理利用这些自定义字段,避免过度设计,保持代码的清晰和可维护性。 **相关问题:** 1. 如何在 Vue Router 中设置路由的元数据? 2. 插槽在自定义字段的应用中有何作用? 3. 导航守卫如何结合自定义元数据使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未成年梦想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值