正确的写法在 unplugin-vue-router 解析页面读取信息后生成的 route.ts 中会加入类似以下代码段的 meta 信息
{
path: "/hi",
name: "/hi",
component: () => import("./assets/_hi_-kdq1g9hr.js"),
/* no children */
meta: {
"layout": home
}
},
<script setup lang="ts">
const { t } = useI18n()
</script>
<template>
<div>
{{ t('found') }}
</div>
</template>
<route lang="yaml">
meta:
layout: home
</route>
import { defineComponent } from 'vue'
export default defineComponent({
setup() {
// your setup code here
const { t } = useI18n()
// eslint-disable-next-line unused-imports/no-unused-vars
const { route } = useRoute()
return () => (
<>
<div>
{ t('found') }
</div>
<route lang="yaml">
meta:
layout: home
</route>
</>
)
},
})
1
liuw666 77 天前 via iPhone
是不是有 defineRoute
|
2
whooami OP @liuw666 route 是通过 import { useRoute } from 'vue-router'; const route = useRoute(); 使用的。
组件给出了 vue3 setup 的写法 https://github.com/posva/unplugin-vue-router?tab=readme-ov-file#definepage-in-script 但加在 jsx 中还是没有效果 ``` <script setup> import { definePage } from 'vue-router/auto' definePage({ name: 'my-own-name', path: '/absolute-with-:param', alias: ['/a/:param'], meta: { custom: 'data', }, }) </script> ``` |
3
wos54 77 天前
纯 jsx 没办法吧, sfc 里的倒是可以试试
|