Vue实例demo——在线翻译

2023-11-11 02:10

本文主要是介绍Vue实例demo——在线翻译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、项目简介

学习Vue也有一段时间了,这几天使用Vue的相关知识完成了一个在线翻译的项目。项目整体上很简单,但是里面包含的一些知识还是很多的。如果你是一名Vue小白,建议你阅读这篇文章。通过参考这个项目,你可以了解从零开始搭建Vue项目,到最终的打包上线的完整过程。

真个项目中使用的技术栈如下:

  • 使用Vue脚手架快速搭建项目
  • 在Vue组件中引入外部的js脚本
  • 在Vue项目中引入jQuery库
  • 调用外部API,这里使用的是百度的翻译API
  • 组件之间的数据传递

最后展示一下这个项目。这是一个在线翻译的项目,可以通过选择,将中文翻译成英文,日文,俄文等其他语言。

二、项目的具体介绍

1.搭建项目,安装vue-resource,配置jQuery库

首先我们要做的是使用Vue脚手架搭建一个项目,因为我的这个项目中使用到了vue-resource组件和jQuery第三方库,所以建议你在完成项目搭建之后就安装vue-resource组件和配置jQuery,如果你不会配置jQuery,可以参考文章:Vue笔记——Vue组件中引入jQuery。

2.申请并掌握百度翻译API接口

项目中使用到的百度提供的免费翻译API,如果之前没有使用过这个API,可以到百度翻译开放平台进行了解。

对百度提供的API不熟悉的同学,一定要沉下心来看一看他的技术文档。这个文档是很详细的,会跟你讲解如果使用API。大致的思路如下:

  1. 首先你要注册一个百度翻译开放平台的账号,然后申请开发者权限,获取一个APP ID和秘钥。

  1. 然后下载它的实例DEMO,百度翻译的API是需要给数据MD5加密的,所以在它的DEMO里面会有一个md5.js脚本文件,我们需要在组件中引入它对数据进行加密。如果你不知道如何在Vue组件中引入外部js脚本文件,可以参考文章:Vue笔记——在Vue项目中引入外部js文件。
3.开始编写项目代码

上述准备工作做好之后,我们就可以进行编写我们的项目代码。

我这里使用到了两个子组件,其中一个子组件 translateForm 是用来接收用户输入的待翻译文字,以及用户选择的翻译模式。用户填写好这些信息之后,点击【翻译】,相关的数据就会传递到这个 translateForm 组件的父组件,也就是 App.vue 组件中。

translateForm 组件的主要代码:

<template><div id="translateForm"><!-- 用户选择的翻译模式 --><div class="option-box"><span class="option-result" v-on:click="showList">{{ option_result }}</span><div class="option-list"><p v-for="(option,index) in option_list" v-on:click="selectOption(index)">{{ option }}</p></div><input type="button" value="翻译" v-on:click="my_translate()"></div><!-- 用户输入的要翻译的文字 --><form class="my-form"><textarea class="my-textarea" v-model="translating_text" placeholder="请输入要翻译的文字"v-on:keydown.enter="my_translate"></textarea></form></div>
</template><script>import $ from 'jquery'export default {name: 'translateForm',data() {return {translating_text: "",language: "en",option_result: "中文 > 英文",option_list: ["中文 > 英文", "中文 > 日文", "中文 > 韩文", "中文 > 法文", "中文 > 泰文", "中文 > 德文", "中文 > 阿拉伯文", "中文 > 俄文", "中文 > 意大利文", "中文 > 丹麦文"],language_list: ["en", "jp", "kor", "fra", "th", "de", "ara", "ru", "it", "dan"]}},methods: {// 用户点击【翻译】,触发自定义事件,将数据传递给父组件my_translate: function () {this.$emit("my_submit", this.translating_text, this.language)event.preventDefault();},// 下使用jQuery库来个翻译选项加一些下拉的动画showList: function () {if ($('.option-list').css('display') != 'none') {$('.option-list').slideUp();}else {$('.option-list').slideDown();}},// 通过用户选择的翻译模式,设置相应的数据selectOption: function (index) {$('.option-list').slideUp();this.language = this.language_list[index];this.option_result = this.option_list[index];}}}</script>

App.vue 组件接收到子组件传递过来的数据之后,开始请求百度翻译API,进行翻译。这里因为是跨域请求数据,所以要使用jsonp,如果你不了解如何跨域请求数据,可以参考文章:Vue笔记——解决Vue请求No ‘Access-Control-Allow-Origin’ 错误

App.vue 组件主要的代码如下:

getText: function (text, lan) {this.translateing_text = text;this.language = lan;// 初始化要传递给API的数据var appid = '这里填写是你申请的APP ID';var key = '这里填写是你申请的秘钥';var salt = (new Date).getTime();var query = this.translateing_text;var from = 'zh';var to = this.language;var str1 = appid + query + salt + key;var sign = MD5(str1);this.$http.jsonp("http://api.fanyi.baidu.com/api/trans/vip/translate?q=" + query + "&from=" + from + "&to=" + to + "&appid=" + appid + "&salt=" + salt + "&sign=" + sign, {}, {headers: {},emulateJSON: true}).then(function (response) {this.translated_text = response.body.trans_result[0].dst;console.log(this.translated_text);})
}

通过请求翻译API,可以获得翻译后的结果,接收到这个结果之后,将数据传递给另外一个子组件 translateResult 进行渲染输出。

4.完成项目,打包上线

不熟悉Vue的同学心里面可能会有这样一个疑问,我使用Vue脚手架搭建的项目都是特别大的,而且每次运行都是使用npm run dev来开启服务才能收使用。如果我完成一个项目,想把它传到服务器上面,要怎么做呢?还要不要每次运行的时候都要使用npm run dev来开启服务。

我们使用Vue脚手架搭建的项目是依赖于node.js的。所以我们在开发的时候开启服务之后才能看得到我们的项目,但是如果我们完成了一个项目,就可以使用打包工具把我们的项目给打包成一个静态文件,放到我们的服务器上,不用开启任何服务,就可以直接访问。

关于如何打包Vue项目使之上线,可以参考文章:vue.js项目打包上线

三、总结

以上只是对这个项目的这个项目的简要概括,列出了主要的代码,如果大家对这个项目感兴趣的话,可以直接查看源代码。,GitHub地址:https://github.com/Fengzhen8023/translate-online

源代码在使用的时候,一定要提前申请你的百度翻译API,将申请到的APP ID和秘钥填写到对应的位置,即可使用。

这篇关于Vue实例demo——在线翻译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/386833

相关文章

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动

HTML input 标签示例详解

《HTMLinput标签示例详解》input标签主要用于接收用户的输入,随type属性值的不同,变换其具体功能,本文通过实例图文并茂的形式给大家介绍HTMLinput标签,感兴趣的朋友一... 目录通用属性输入框单行文本输入框 text密码输入框 password数字输入框 number电子邮件输入编程框

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,