当前位置: 首页 > news >正文

vue3 uniapp vite 配置之定义指令

动态引入指令

// src/directives/index.js
import trim from './trim';const directives = {trim,
};export default {install(app) {console.log('[✔] 自定义指令插件 install 触发了!');Object.entries(directives).forEach(([key, directive]) => {app.directive(key, directive);});},
};

自定义指令函数

// src/directives/trim.js
export default {beforeMount(el) {if (el.tagName === 'TEXTAREA' || el.tagName === 'INPUT') {el.addEventListener('blur', () => {el.value = el.value.trim();});}},
};

注册指令

import {createSSRApp
} from "vue";
import pinia from '@/stores'
import * as Pinia from 'pinia';
import App from "./App.vue";
import directives from '@/directives'export function createApp() {const app = createSSRApp(App);debuggerapp.use(pinia);app.use(directives);return {app,Pinia, // 此处必须将 Pinia 返回};
}

错误信息:[plugin:vite:vue] unknown directive {“type”:7,“name”:“trim”,“rawName”:“v-trim”,“modifiers”:[],“loc”:{“start”:{“column”:51,“line”:28,“offset”:722},“end”:{“column”:57,“line”:28,“offset”:728},“source”:“v-trim”}}

需要vite中配置>

好像Uniapp 官方不支持之定义指令
@vitejs/plugin-vue和@dcloudio/vite-plugin-uni只能存在一个 也就是uniapp不支持?

import {defineConfig
} from 'vite'
import uni from '@dcloudio/vite-plugin-uni'
import path from 'path'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
// https://vitejs.dev/config/
export default defineConfig({transpileDependencies:['@dcloudio/uni-ui'],plugins: [vue({template: {compilerOptions: {directiveTransforms: {trim: () => ({props: [],needRuntime: true // 重点:告诉编译器这是运行时处理})}}}}),//	uni(),AutoImport({// 预设imports:['vue','uni-app']}),],css: {preprocessorOptions: {scss: {additionalData: `@use "@/static/css/compont.scss" as *;@use '@/static/iconfont/iconfont.css' as *;`,silenceDeprecations: ['legacy-js-api'],api: 'modern-compiler',},},
},resolve: {alias: {'@': path.resolve(__dirname, 'src')}}// 配置路径别名// resolve: {//   alias: {//     "@": resolve(__dirname, "src"),//   },// }
})

相关文章:

  • 《vue3学习手记3》
  • 【UE5】连接射频线案例教程
  • 数据结构与算法[零基础]---4.树和二叉树
  • 视频孪生重构施工逻辑:智慧工地的数字化升级
  • JVM 内存调优
  • ctfshow——web入门191~194
  • 用户态网络缓冲区
  • 【课题推荐】多速率自适应卡尔曼滤波(MRAKF)用于目标跟踪
  • Hi3518E官方录像例程源码流程分析(三)
  • JVM:程序计数器、虚拟机栈、本地方法栈
  • Docker Compose 中配置 Host 网络模式
  • Spring Task(笔记)
  • Android --- FrameWork 入门:Product是什么?
  • winfrom 查询某字符串 找到它在 richTextbox 的位置 定位 并高亮 并且滚动定位到所查询的字符串所在的行
  • Meltdown原理介绍:用户空间读取内核内存
  • apt3.0和apt2.0的区别
  • AI数字人分身无限克隆,开启IP视频创作新纪元!
  • 如何判断一个js对象是否拥有某个属性(区分自身属性和原型链上的属性)?
  • [管理与领导-129]:向上管理-组织架构、股权架构、业务架构、流程架构,看每个人在组织中的位置和重要性
  • Angular 框架详解:从入门到进阶
  • 怎么做算命网站/成人用品网店进货渠道
  • 邯郸网站建设优化排名/核酸检测最新消息
  • 朝阳专业网站建设/网络推广内容
  • 宁波汽车网站建设/线上培训平台
  • 世界军事新闻/天门seo
  • wordpress h1/福州短视频seo机会