在现在这个时间节点,使用Vue3生态请避免用 vue-meta 来处理HTML Head
source link: https://www.skypyb.com/2022/04/jishu/1973/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
在现在这个时间节点,使用Vue3生态请避免用 vue-meta 来处理HTML Head
如果你使用了vue-meta, 那么你将变得不幸。
nuxt/vue-meta的Vue3适配版现在还处于 alpha 阶段, 我使用的是Alpha 10。
项目仓库地址:https://github.com/nuxt/vue-meta
其实按理说这玩意既然是大组织维护(nuxt), 再加上Vue3都发布这么这么这么这么久了! 我觉得他就算还在alpha ,但是在“基本使用”这一层面上应该是没什么问题的。
但很遗憾我想错了哈……
这东西有个严重的无法正常使用功能的bug。
meta标签的name无法定义,无论传什么都是显示 “meta”
比如说我要定义一个这种标签:
<meta name="hostname" content="baidu.com">
那么很遗憾,你定义不出来呢,不管你传啥,反正name显示的就是一个 meta。
useMeta({ meta: [{ name: "hostname", content: "baidu.com" }] )
上面弄出来的结果会是这样的:
<meta name="meta" content="baidu.com">
你传一些什么其他的属性,嗨,居然都能正常。
比如: itemprop、 property , 你定义出来他确实可以正常渲染, 但是name就不行。
但我们对SEO有一定了解的就知道, meta标签的name属性肯定是不能缺的, 很多优化的点都依靠这个标签属性。 你搞不了这个,那说实话你也没必要隔这儿搞什么SEO了。
还有相关的Issue:
Vue meta Alpha8 doens’t generate meta tags properly #746
Alpha8就有人遇到了相同的问题, 10还在, 很难不流汗。
不过怎么说呢,这个bug还是有一个怪异的解决方法的。
我看了下vue-meta.d.ts的源码,看看他是咋定义的这玩意,勉强还是被我找到了个操作,
虽然用起来很奇怪但是姑且还是能用的,那就是自定义标签渲染逻辑,通过useMetaManager()的时候传入进去config属性。
我观察了一下vue-meta源码中定义,我这种方式也会出现两个问题
1、吃唯一key,非常容易定义重复
2、只能定义两种属性输出,比如上面案例的 name + content, 我要是在想加一个 itemprop, 那就不行了。
但再怎么说也还勉强能用吧。
我在上面issue的回复中给出了替代方式(步骤)和代码,这里就不贴了,有兴趣的直接去看就行。
如果你还没开始用vue-meta, 那么最好是先别用它……
去看看别的库吧,Vue3的Head处理还有个: https://github.com/vueuse/head
看起来还不错。
Recommend
-
2
V2EX › 问与答 现在这个时间节点下,还有国内外都能用的图床不?收费也可以的!
-
2
需要 32G 内存,现在这个节点,苹果设备该怎么选 V2EX › macOS ...
-
2
避免业务中断,K8s节点故障排查攻略,速来围观! 作者:didiplus 2024-03-12 15:47:12 本教程将引导您深入了解和排查K8S节点故障的常见问题,以确保集群的可靠性和稳定性。 Kubernetes是一个强大的容器编...
-
27
问与答 - @qiuai - 有 4 点前提:1.家里有孩子,不能声音大.2.价格 1000 以内.3.不是苹果.4.基本上不玩游戏感谢.
-
1
V2EX › macOS Sonoma 都出了,现在这个时间点,在 Ventura 之前的系统上有什么能模拟 stage manager 的软件吗?
-
30
小程序生态的关键节点
-
7
社区生态 | BTFS 全网合约总数超过 5200 万,节点总收益超过 101 亿 BTT据最新消息 ,BitTorrent File System(BTFS) 全网合约总数超过 5200 万。 同时, 据 BTFS 官方数据浏览器 BTSCAN 显示, 全网节点总收益 10,116,563,136BTT,超过 101 亿 B...
-
60
我的2018,一年的时间节点
-
4
重磅!Prime Day或于7月举行?这些重要时间节点已公布! ...
-
5
手势交互丝滑放大,沉浸式拖拽时间节点 产品: 汽水儿猎人:
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK