如何在inertiajs和vue3中设置和更改(页面标题)

问题描述 投票:0回答:4

我正在使用 vue3inertiaJs 以及 Laravel8

如果我更改页面,我想更改(页面标题

我在 Inertia 文档中检查了这段代码,但它对我不起作用,并且页面标题没有改变 我安装了 vue-meta

  metaInfo() {
     return() {
         title: “Home Page”,
     }
  }
laravel vue.js vuejs3 inertiajs
4个回答
1
投票

return()
是一个属性,而不是一个函数。 :) 所以你应该这样做:
return

// parent
metaInfo: {
  meta: [{
    vmid: 'description',
    name: 'description',
    content: 'my standard description',
  }]
}

// child
metaInfo() {
  return {
    meta: [{
      vmid: 'description',
      name: 'description',
      content: this.description,
    }]
  }
},

了解更多信息此 Vue 文档


1
投票

在“inertia-vue3”中,我们如何知道“描述”发生了变化?

import { Head } from '@inertiajs/inertia-vue3'

<Head>
  <title>About - My app</title>
  <meta head-key="description" name="description" content="This is a page specific description" />
</Head>

view-source中,什么也看不懂!

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">


        
        
        <title inertia>test</title>
        

    <body>   
    </body>
</html>

0
投票

根据 Inertia v0.4.0,他们现在捆绑自己的

inertia-head
组件,您可以使用它来添加元标记和更新标题。不再需要
vue-meta

只需将以下内容直接添加到您的页面组件中即可:

<inertia-head>
  <title>Your page title</title>
  <meta name="description" content="Your page description">
</inertia-head>

您可以在 v0.4.0 的变更日志中找到更多信息。


0
投票

在正在渲染的 Vue 文件中:

<template>
    <!-- You can do it like this if you only setting title -->
    <Head :title="Home Page" />

    <!-- Or if you want to set other meta you can do the following -->
    <Head>
        <title>Home Page</title>
        <meta name="description" content="Page description">
    </Head>
</template>

<script>
import { Head } from '@inertiajs/vue3';

export default {
    components: {
        Head,
    },
    // ...
};
</script>

当然,您需要确保您的应用程序正在设置标题,

createInertiaApp
很可能位于您的根
app.js
文件中:

createInertiaApp({
    title: (title) => title ? `${title} - ${appName}` : appName,
    // ...
})

参考:关于标题和元数据的 Inertia 文档

© www.soinside.com 2019 - 2024. All rights reserved.