Vue3.0添加全局自定义音译指令 / 前端实现中文名称自动翻译成英文名称
1.定义全局指令transliteration.js

import { transliterate as tr, slugify } from 'transliteration'
export default {
mounted(el) {
const nameEl = el.querySelector('.nameEl>input') //中文文本框
const codeEl = el.querySelector('.codeEl>input') //英文文本框
let isFirstInput = true
nameEl.addEventListener('keyup', () => {
const isEmpty = !codeEl.value
//仅当code值为空时,才进行自动翻译。如果code值已填写,不翻译
if (isEmpty || !isFirstInput) {
isFirstInput = false
codeEl.value = slugify(nameEl.value, { separator: '_' }) //翻译后的英文字符串
//自定义事件:触发被翻译字段的视图刷新
const inputEvt = document.createEvent("HTMLEvents")
inputEvt.initEvent('input',false,false)
codeEl.dispatchEvent(inputEvt)
}
})
}
}
注意点:
1、在引入transliteration之前需要先安装插件: npm install transliteration --save
2、音译插件使用方法参考https://github.com/dzcpy/transliteration
2.在main.js中注册指令
//引入自定义指令 import transliteration from '@/directive/transliteration' const app: ReturnType<typeof createApp> = createApp(App) //相当于Vue app.directive('transliteration',transliteration) //注册自定义指令 //下面的是路由以及store等的注册 initElement(app) app.config.globalProperties.$ELEMENT = {'size': 'small'} app .use(router) .use(store, key) .mount('#app')
3.在页面组件中使用v-transliteration


浙公网安备 33010602011771号