作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好像Vue Meta已升级为使用名为 vue-3-meta
的新 npm 包处理 Vue.js 3
在 Vue.js 3 之前,它很容易使用 vue-meta
通过将其添加到 Vue 实例:
import Vue from 'vue'
import VueMeta from 'vue-meta'
Vue.use(VueMeta, {
// optional pluginOptions
refreshOnceOnNavigation: true
})
但是在 Vue.js 3 中,没有 Vue 实例;而是通过运行
createApp
创建应用程序像这样:
const app = createApp(App);
const router = createVueRouter();
app.use(router);
// need to make app use Vue-Meta here
我找不到
vue-3-meta
的任何文档.
import VueMeta from 'vue-meta'
不再工作。
vue-3-meta
正确使用插件并将其与
app
一起使用像以前的版本一样?
最佳答案
免责声明:vue-meta v3仍处于 alpha 阶段!
这是我需要开始的最小实现:
vue-meta
到 v3(在 package.json 中)- "vue-meta": "^2.4.0",
+ "vue-meta": "^3.0.0-alpha.7",
...或使用 yarn :yarn add vue-meta@alpha
metaManager
到 Vue 应用程序import { createMetaManager } from 'vue-meta'
const app = createApp(App)
.use(router)
.use(store)
.use(createMetaManager()) // add this line
await router.isReady()
app.mount('#app')
<metainfo>
到 App.vue <template>
(这也是我设置“标题模板”的地方)<template>
<metainfo>
<template v-slot:title="{ content }">{{ content ? `${content} | SITE_NAME` : `SITE_NAME` }}</template>
</metainfo>
<header />
<router-view />
<footer />
</template>
<script>
Vue 3 原版:import { useMeta } from 'vue-meta'
export default {
setup () {
useMeta({
title: '',
htmlAttrs: { lang: 'en', amp: true }
})
}
}
或与 vue-class-component
:import { setup, Vue } from 'vue-class-component'
import { useMeta } from 'vue-meta'
export default class App extends Vue {
meta = setup(() => useMeta({
title: '',
htmlAttrs: { lang: 'en', amp: true }
})
}
import { useMeta } from 'vue-meta'
export default {
setup () {
useMeta({ title: 'Some Page' })
}
}
或与 vue-class-component
:import { computed } from '@vue/runtime-core'
import { setup, Vue } from 'vue-class-component'
import { useMeta } from 'vue-meta'
export default class SomePage extends Vue {
meta = setup(() => useMeta(
computed(() => ({ title: this.something?.field ?? 'Default' })))
)
}
next
branch) next
branch) 关于javascript - 如何在 Vue.js 3 中使用 Vue 3 Meta?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66228340/
我是一名优秀的程序员,十分优秀!