首页 > 其他分享 >使用TS进行Vue-Router的Meta类型扩展

使用TS进行Vue-Router的Meta类型扩展

时间:2023-11-08 16:24:16浏览次数:41  
标签:src 教程 Vue title TS ts Meta meta

目录

1、前言

使用Vue-Router时,会将一些字段信息附加到路由的Meta对象里面,比如图标icon,标题,权限等,如下:

{
  path: '/billboard/board/:boardId',
  name: 'billboardBoard',
  props: true,
  component: () => import('@/views/billboard/board.vue'),
  meta: {
    title: 'message.router.billboard',
    isHide: true,
    isKeepAlive: false,
    isAffix: false,
    isIframe: false,
    icon: 'iconfont icon-board'
  }
}

但是在使用的过程中,TS会认为这些字段是unknown类型,从而导致赋值或者使用的时候会报错:

router.beforeEach((to) => {
	document.title = to.meta.title || '默认标题'
})

如图:

2、解决

为了避免报错和标红(虽然不影响程序运行),我们可以通过扩展RouteMeta接口,声明Meta的字段,这样在使用过程中不仅不会报错标红,还会有代码提示,方法如下:

  • 在根目录或者types目录下,新建一个router-meta.d.ts文件,文件内容如下:
/**
 * @description 扩展ruoter-meta的类型 此处必须要export {} 不然找不到类型
 */
declare module 'vue-router' {
	interface RouteMeta {
		permission?: Array<string>
		title?: string
		icon?: string
		affix?: boolean
		hidden?: boolean
		keepAlive?: boolean
	}
}

export {}
  • 在根目录tsconfig.json的include选项中,能够包含到这个文件即可。
{
  "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue", "types/**/*.d.ts", "types/**/*.ts"],
  "exclude": ["node_modules/**", "dist", "**/*.js"]
}

如图:


本次分享就到这儿啦,我是鹏多多,如果您看了觉得有帮助,欢迎评论,关注,点赞,转发,我们下次见~


PS:在本页按F12,在console中输入document.querySelectorAll('.diggit')[0].click(),有惊喜哦


公众号

往期文章

个人主页

标签:src,教程,Vue,title,TS,ts,Meta,meta
From: https://www.cnblogs.com/-pdd/p/17817657.html

相关文章

  • TSINGSEE青犀AI智能分析网关V4人员离岗识别算法的说明及应用
    人员离岗AI识别算法,是基于计算机视觉深度学习神经网络技术,通过配合现场部署的监控摄像头,自动识别人员是否在工位或作业区域内,结合离岗时间的配置,可以触发人员离岗告警。该算法目前可应用在监控室、、值班室、中控室工厂、工地等多样化场景中。随着安防领域及AI视频技术的发展,人员......
  • [Vue] 大屏自适应问题
     可视化大屏需要自适应各种屏幕,使用了DataV的dv-full-screen-container ,v-scale-screen,但都达不到要求,dv-full-screen-container随着屏幕缩放或分辨率变化,文字也相应变化了,v-scale-screen+DataV控件时,第一次加载页面时,DataV边框宽高没有调整过来,还需要稍微拉伸一下,触发......
  • 少林寺方丈释永信造访 Meta 总部;OpenAI 正在摧毁创业公司?丨 RTE 开发者日报 Vol.80
     开发者朋友们大家好:这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE (RealTimeEngagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观点,欢迎......
  • [论文阅读] Dist-GAN: An Improved GAN using Distance Constraints
    [1803.08887]Dist-GAN:AnImprovedGANusingDistanceConstraints(arxiv.org)TranNT,BuiTA,CheungNM.Dist-gan:Animprovedganusingdistanceconstraints[C]//ProceedingsoftheEuropeanconferenceoncomputervision(ECCV).2018:370-385.引用:102原......
  • IDAPro Cheatsheet
    IDAPro是一款由Hex-Rays开发的反汇编软件,可以用于逆向工程、漏洞分析、恶意代码分析、软件调试等领域。它支持多种处理器架构和操作系统,具有强大的反编译功能,可以将二进制文件转换为高级语言代码。除了反编译功能,IDAPro还提供了许多其他功能,如动态调试、代码浏览、数据交叉引用......
  • vue上传文件夹目录
    在input上面添加webkitdirectorydirectory这两个属性就能开启选择目录模式<inputref="fileIptRef"class="file-ipt"type="file"webkitdirectorydirectorymultiple@change="handleFileSelect"/>//文件上传输入框的refconstfileIptRef:any=ref(......
  • Python和requests库结合采集豆瓣短评
    Python是一种常用的程序语言,今天我们就用Python和requests库结合,来写一个采集豆瓣短评的程序,非常的简单,一起来学学吧。```pythonimportrequestsfrombs4importBeautifulSoup#设置代理proxy=f'http://{proxy_host}:{proxy_port}'headers={'User-Agent':'Mozilla/5.......
  • getContextPath、getServletPath、getRequestURI的区别
    假定你的webapplication名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 则执行下面向行代码后打印出如下结果: 1、System.out.println(request.getContextPath());//可返回站点的根路径。也就是项目的名字 打印结果:/news   2......
  • VUE上传文件夹的三种解决方案
     本文章向大家介绍VUE上传文件夹的三种解决方案,主要内容包括上传分步:、直接上代码、使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。 ​对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送、接收都是不可取,很......
  • vue+element拖动排序功能
    vue+element拖动排序功能安装npminstallvuedraggable-S引用importdraggablefrom'vuedraggable'注册组件components:{draggable},通过draggable标签来使用代码<draggablev-model="urlPic":move="onMove"@start=......