vue3封装全局方法

场景:各个模块详情中存在附件列表数据,需要再每个中添加一个预览附件的方法,是后期提出的需求,所以要在每个模块中进行添加,就去将预览方法封装一下。

将公共方法封装在utils下

utils/filePreview.ts

复制代码
import router from '@/router'; // 引入路由实例

/**
 * 文件预览公共方法
 * @param {Object} row - 当前文件数据
 */
export function filePreview(row) {
  localStorage.setItem('filedata', JSON.stringify(row)); // 将文件数据存储到 localStorage 中
  const url = `${window.location.origin}${router.options.base || ''}/filePreview`; // 构造跳转 URL
  const link = document.createElement('a'); // 创建 a 标签
  link.href = url;
  link.target = '_blank'; // 新窗口打开
  link.click(); // 触发点击事件
}

然后再main.ts中进行引用注册

import App from './App.vue'

import {filePreview} from '@/utils/filePreview';

const app = createApp(App)

app.config.globalProperties.$filePreview = filePreview;

使用方法

<el-button

size="small"

type="primary"

@click="$filePreview(scope.row)"

>

预览

</el-button>

相关推荐
Code季风21 分钟前
虚拟机配置node.js(前端环境搭建)
前端·node.js
江城开朗的豌豆32 分钟前
解锁Vue自定义指令:这些骚操作你可能还不知道!
前端·javascript·vue.js
江城开朗的豌豆42 分钟前
Vue和iframe的悄悄话:跨窗口通信小妙招
前端·javascript·vue.js
江城开朗的豌豆1 小时前
Vue的v-model到底是个啥?用了5年才知道还能这么玩!
前端·javascript·vue.js
喜欢打篮球的普通人2 小时前
LLVM前端和优化层
前端
大明者省5 小时前
AI 在课程思政的 10 大应用:从资源挖掘到效果升华
前端·人工智能·easyui
饺子大魔王的男人9 小时前
【Three.js】机器人管线包模拟
javascript·机器人
知否技术9 小时前
知道这10个npm工具包,开发效率提高好几倍!第2个大家都用过!
前端·npm
希希不嘻嘻~傻希希10 小时前
CSS 字体与文本样式笔记
开发语言·前端·javascript·css·ecmascript
石小石Orz10 小时前
分享10个吊炸天的油猴脚本,2025最新!
前端