使用Vue实现的在线翻译(附带源码)
程序员文章站
2022-05-28 12:07:09
...
1.预览
2.实现思路
我的项目结构:
App.vue是根组件,在该页面中引用两个子组件,InputForm.vue是左侧的输入组件,右侧OutputForm.vue是右侧的输出结果组件。
具体的实现思路是,在InputForm组件中输入要查询的语句,选择要翻译成的语言,然后将语句传递给根组件,在根组件中,调用接口进行查询,然后将结果传递给OutputForm.vue组件显示。
3.具体实现
1.App.vue
1.引入两个子组件
import InputForm from './components/InputForm'
import OutputForm from './components/OutputForm'
2.在页面中调用子组件
<InputForm v-on:formSubmit="getInputText"></InputForm>
<OutputForm v-bind:result="result"></OutputForm>
3.使用接口进行查询
getInputText(text, lang){
this.$http.get('https://translate.yandex.net/api/v1.5/tr.json/translate?key=trnsl.1.1.20190929T080118Z.4d67d1a58a417067.bc7ee7d17c7ba88f7b74ef8c638e35925339d6c5&lang='+lang+'&text='+text).then((response)=>{
this.result = response.body.text[0];
})
}
text代表要查询的语句,lang代表要翻译成的语言,这两个属性都是从InputForm组件中传递来的。
getInputText()是翻译按钮的触发事件,将result传给OutputForm组件。
2.InputForm.vue
输入表单中绑定的提交事件:
<form v-on:submit="formSubmit">
formSubmit(e){
this.$emit("formSubmit", this.transtext, this.lang);//事件注册
e.preventDefault();
}
3.OutputForm.vue
export default {
name: 'OutputForm',
props:["result"],
methods:{
getPaste(){
document.querySelector('#input').select();
document.execCommand('copy');
}
}
}
result从根组件中获取,可在页面内直接进行使用。
getPaste()实现了对查询结果的复制,可将查询结果复制到剪贴板。
推荐阅读
-
vue 使用自定义指令实现表单校验的方法
-
使用.Net Core + Vue + IdentityServer4 + Ocelot 实现一个简单的DEMO +源码
-
Android中使用 AutoCompleteTextView 实现手机号格式化附带清空历史的操作
-
vue-router 源码实现前端路由的两种方式
-
Vue使用vue-area-linkage实现地址三级联动效果的示例
-
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
-
使用D3.js+Vue实现一个简单的柱形图
-
在vue使用clipboard.js进行一键复制文本的实现示例
-
使用DevExpress的PdfViewer实现PDF打开、预览、另存为、打印(附源码下载)
-
使用vue2实现带地区编号和名称的省市县三级联动效果