首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >vue-meta不会在页面刷新或动态组件的外部链接单击时显示标题、内容或架构

vue-meta不会在页面刷新或动态组件的外部链接单击时显示标题、内容或架构
EN

Stack Overflow用户
提问于 2021-07-07 15:45:22
回答 1查看 124关注 0票数 0

当我通过导航栏导航到动态组件时,vue-meta标题、内容和模式都正确显示,但是当我刷新页面或单击外部链接时,我得到的值是undefined。

我已经在json文件中存储了标题、内容和模式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 metaInfo() {
    return {
      title: `${this.seoTitle}`,
      meta: [
        {name: "robots", content: "index,follow"},
        {
          name: 'description',
          content: `${this.seoContent}`

        }

      ],
      link: [
        {rel: 'favicon', href: 'logo.ico'}
      ],
      script: [{
        type: 'application/ld+json',
        json: this.markups
      }]
    }
  },
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data() {
    return {
      seoTitle: this.$route.params.title,
      seoContent: this.$route.params.content,
      markups:this.$route.params.markup,
}
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <div class="landing-group-tours box" v-for="tour in boatTours" :key="tour.id">
        <router-link
            :to="{name: 'details', params:{id: tour.id, title: tour.seoTitle, content: tour.seoContent, markup:tour.markup}}">
</div>
<script>
import tours from '@/data/privateToursData.json'
export default{
data(){
return{
  boatTours: tours
  {
 }
}
</script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-12 14:16:53

您应该将路由器参数存储在路由器本身或URL中,而不是链路中。您所做的是在单击链接时在内部传递对象,但正如您所注意到的,当您单击浏览器刷新按钮时,这些参数就会消失。

发生的事情是,Vue将加载应用程序和路由器,识别负责渲染路由的组件,并将检测到的参数从路由器传递到组件。因此会丢失你之前在链接中的任何额外数据。

根据应用程序逻辑,尝试只在路由器中保留动态参数,并将其余参数加载到组件中。也就是说,假设你的路线看起来像/details/:id,你应该在你的details组件中初始化SEO参数。

通常,这些数据来自后端,为了更快地访问,我会将数组转换为文字对象,并通过键访问记录。例如,将数组从:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[ 
    { "id": 1008; "title": "title1", "content": "....", ... }, 
    { "id": 1009, "title": "..."... } 
]

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "1008": { title: "title1", content: "....", ... },
    "1009": { .... }
}

然后将其存储在VueX (https://vuex.vuejs.org/guide/getters.html)中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
getters: {
  // ...
  getBoatTour: (state) => (id) => {
    return state.boatTours[id] || { title: 'Not found', content: '......' }
  }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    data() {
        const SEOdata = store.getters.getBoatTour(this.$route.params.id); 
        return {
            seoTitle: SEOdata.title,
            seoContent: SEOdata.content,
            markups: SEOdata.markup,
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68289139

复制
相关文章
QML动态显示组件(支持在线编辑动态刷新)
QML动态组件显示器主要用于方便界面开发,在线编辑保存后自动刷新组件界面,并支持拖拽文件显示的方式。
Qt君
2019/07/15
5.5K0
Vue页面内修改外部引进组件CSS(局部修改)
在实际的Vue项目中,我们经常需要引进一些外部组件,elementUI, ant-designed,之类的,而且我们总需要在某些下,对这些个组件的某些样式进行修改(不影响全局样式的情况下修改)
Qwe7
2022/06/09
1.3K0
js页面刷新或关闭时弹框消失_js刷新页面如何保留页面内容
  用法:onbeforeunload 事件在即将离开当前页面(刷新或关闭)时触发。该事件可用于弹出对话框,提示用户是继续浏览页面还是离开当前页面。对话框默认的提示信息根据不同的浏览器有所不同,标准的信息类似 “确定要离开此页吗?”。该信息不能删除。但你可以自定义一些消息提示与标准信息一起显示在对话框。注意: 在 Firefox 浏览器中,只显示默认提醒信息(不显示自定义信息)。
全栈程序员站长
2022/11/17
11.9K0
使用xshell时显示wget不是内部或外部命令
刚才在捣鼓xshell。上面的小图标是红色的,就是我画的小红色圆圈里的,正常的时候是绿色的,如果出现红色,就说明有问题了。
纯情
2023/04/26
1.1K0
使用xshell时显示wget不是内部或外部命令
用jquery刷新或重新加载页面
在网页开发过程中,经常会遇到需要重新加载或刷新页面,下面我来说一下如果通过jq来刷新或重新加载页面,来看代码。
OECOM
2020/07/01
7K0
flask html页面中放动态链接
{% block head %} {{ super() }} <link rel="shortcut icon" href="{{ url_for('static', filename = 'favicon.ico') }}" type="image/x-icon"> <link rel="icon" href="{{ url_for('static', filename = 'favicon.ico') }}" type="image/x-icon"> {% endblock %} url_f
用户5760343
2019/07/08
2.9K0
针对Steam平台的攻击分析
数字游戏平台服务不仅简化了游戏本身的销售,还为开发商提供了额外的盈利手段。例如,游戏中的皮肤、设备和角色增强元素,都可以获得大量的收益。用户自己也可以互相推销商品,最稀有的可以卖到几千美元。
FB客服
2019/12/09
2.3K0
针对Steam平台的攻击分析
vue页面刷新_vue强制重置组件
经常使用vue的小伙伴看到这个应该很熟悉吧,我们经常用它来实现前进后退,但别忘了它还可以实现自身页面刷新
全栈程序员站长
2022/11/03
2.4K0
vue页面刷新_vue强制重置组件
vue meta设置页面
在项目中,有一个搜索页面,需要根据不同的关键字,动态修改meta信息,用于seo优化。
py3study
2021/03/23
3.4K0
陌溪在百度上搜索蘑菇博客,被吓了一跳
最近,有很多小伙伴反馈,说在部署蘑菇博客后,发现没有办法修改网站的 meta 信息,也就是浏览器上的 icon图标和标题信息,没有办法自定义。
陌溪
2021/12/08
6530
陌溪在百度上搜索蘑菇博客,被吓了一跳
vue 组件中动态引入外部js库
最近开发项目在和华为Volte做对接,结果华为volte第一版还是原生加jquery来实现的,由于里面有不少需要引入外部js文件的,就给了一天的时间做对接,没办法只能剑走偏锋了 首先定义一个 utils/loadScript.js 封装一个动态加载js文件的方法
李维亮
2022/01/15
6.5K0
网站SEO优化:Meta标签如何书写?Vue项目怎么优化Meta标签?
什么是Meta标签呢?这可不是最近很火的“元宇宙”或是FB。Meta标签,或者说Meta元素,是HTML内head标签的一部分。通常用于指定页面描述、关键字以及未在其他head元素、属性中提供的其他元数据。间接参与浏览器页面渲染,或者为搜索引擎的爬虫提供引导(进而让搜索引擎更好收录网站)。
Mintimate
2022/01/20
4K5
网站SEO优化:Meta标签如何书写?Vue项目怎么优化Meta标签?
js 网站页面标题自定义、滚动、闪烁显示
网站标题自定义并滚动 // JS 代码实现网站标题自定义 <script type="text/javascript"> var sTitle = "这句话是网站页面的标题" function TitleMove(){     sTitle = sTitle.substring(1, sTitle.length) + sTitle.substring(0, 1);     document.title = sTitle;     status = sTitle; } window.setInterval("
Savalone
2020/03/09
4.2K0
nuxt 为单独的页面或组件 注入js
代码如下 head() { return { script: [ { charset: 'utf-8', src:'htt
拿我格子衫来
2022/01/24
1.6K0
nuxt 为单独的页面或组件 注入js
bootstrap 页面标题
<div class="page-header"> -- <div class="page-header"> <h1>页面标题实例 <small>子标题</small> </h1> </div> <p>这是一个示例文本。这是一个示例文本。这是一个示例文本。这是一个示例文本。这是一个示例文本。</p>
用户5760343
2019/07/05
9230
bootstrap 页面标题
Visual Studio 2008 每日提示(二十一)
#201、在vs里运行外部工具 原文链接:You can run external tools within Visual Studio 操作步骤: 菜单:工具+外部工具 添加的外部工具,就会在工具菜单里显示 评论:你知道工具菜单那些程序是外部工具么? #202、创建自己的外部工具 原文链接:You can add your own External Tools to the list 操作步骤: 1、打开外部工具窗口,菜单:工具+外部工具 2、单击“添加”按钮,创建一个“新工具1”的预留位置。
Jianbo
2018/03/01
8450
Vue.js项目中管理每个页面的头部标签的方法
在 Vue SPA 应用中,如果想要修改 HTML 的头部标签,如页面的 title,我们只能去修改index.html模板文件,但是这个是全局的修改,如何为每个页面都设置不一样的 title 呢?下面介绍两种方法。
张张
2019/12/27
1.8K0
创建动态库时,建议使用的链接选项Bsymbolic
回归正题,前段时间项目开发中,实现了一个动态库,封装了一些方法。然后基于这个动态库,实现了一个应用程序。应用程序中含有全局变量A,动态库中也含有全局变量A,当我调用动态库中函数后,发现应用程序的A发生了变化!!!O,My God!对于我这种还没在Linux下做过开发的人来说,一头雾水。。。。。。 于是我尝试着,将A中的变量名称改为B,这样问题也就没有了~~~
河边一枝柳
2021/08/06
1.7K0
点击加载更多

相似问题

当单击链接或单击页面外部时,如何关闭整个菜单?

10

单击链接时刷新页面

22

单击链接标题时显示空白。

15

单击链接时刷新页面

55

页面加载时显示动态标题

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文