前端 Vue3导入本地pag格式文件 打包dist

安装libpag

npm i libpag

安装rollup-plugin-copy

npm i rollup-plugin-copy

配置rollup-plugin-copy

在vite.config.js中进行配置,目的是把加载pag文件所需的libpag.wasm复制到打的dist包中
在这里插入图片描述

import copy from "rollup-plugin-copy";
copy({
        targets: [
          {
            src: "./node_modules/libpag/lib/libpag.wasm",
            dest: process.env.NODE_ENV === "production" ? "dist/" : "public/",
          },
        ],
        hook:
          process.env.NODE_ENV === "production" ? "writeBundle" : "buildStart",
      })

封装函数并导入pag

script标签里引入:

import { PAGInit } from "libpag";

methods里封装函数:

// 加载pag动图到指定id的canvas
    async loadPAG(url, id, num = 0) {
      // 实例化 PAG
      const PAG = await PAGInit();
      // 获取 PAG 素材数据
      const buffer = await fetch(url).then((response) => {
        return response.arrayBuffer();
      });
      // 加载 PAG 素材为 PAGFile 对象
      const pagFile = await PAG.PAGFile.load(buffer);
      // 将画布尺寸设置为 PAGFile的尺寸
      const canvas = document.getElementById(id);
      canvas.width = pagFile.width();
      canvas.height = pagFile.height();
      // 实例化 PAGView 对象
      const pagView = await PAG.PAGView.init(pagFile, canvas);
      // 循环播放
      pagView.setRepeatCount(num);
      await pagView.play();
    }

mounted里导入本地相对路径的文件:

this.loadPAG(
      new URL("./assets/顶部_bmp.pag", import.meta.url).href,
      "topIn"
    );
  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue.js 本身是一个前端JavaScript框架,专注于构建用户界面。如果你想要在 Vue 3 项目中引入加密功能,通常会使用浏览器内置的 `crypto` API 或者第三方库,比如 `jsencrypt`、`argon2js` 等。 在 Vue 项目中引入 `crypto` API 的步骤如下: 1. **使用内置 `crypto` API**: ```javascript // 在 Vue 组件内的任意地方 import { ref, computed } from 'vue'; // 创建一个计算属性来处理加密和解密 const encrypt = async (plaintext) => { const encrypted = window.crypto.subtle.encrypt( { name: "AES-GCM", iv: new Uint8Array(12) }, // 使用 GCM 模式,生成随机 IV await window.crypto.subtle.generateKey({name: "AES-GCM", length: 256}, true, ['encrypt', 'decrypt']), // 生成加密密钥 new TextEncoder().encode(plaintext) // 转换为字节数组 ); return encrypted; }; // 使用时,例如加密数据 const encryptedData = await encrypt('your plaintext'); ``` 2. **使用第三方库**: 首先安装库(如 jsencrypt): ```bash npm install jseccrypt ``` 然后在代码中导入并使用: ```javascript import JSEncrypt from 'jseccrypt'; const jse = new JSEncrypt(); jse.setKey('your-secret-key'); // 设置密钥 const encrypted = jse.encrypt('your plaintext'); ``` 相关问题: 1. Vue3 如何在组件中调用 `crypto` API 进行加密? 2. 如果不想暴露敏感密钥,如何在 Vue3 中安全地使用第三方加密库? 3. 在处理加密数据时,如何在 Vue3 中确保数据的安全传输?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值