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