日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue 后台翻译_vue translate peoject实现在线翻译功能【新手必看】

發布時間:2025/3/20 vue 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue 后台翻译_vue translate peoject实现在线翻译功能【新手必看】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

開始

這是一適合新手練習的小項目,一個在線翻譯的demo。

在正式開始前,先啰嗦一下,是一位網友給我的建議,就是不要強行組件化的問題 開始做Vue時我們可能會喜歡拆很多組件出來 但記住組件是為了復用(常見如公共菜單按鈕欄等) 如非能夠復用的情況其實并不用真的拆出組件來 。

當然,這個項目里因為是練手,所以強行組件化來涉及更多的vue用法。

目錄結構

src下新建了兩個文件:TranslateForm.vue表單組件和TranslateText.vue翻譯結果組件

涉及的語法

指令:v-model,v-on,v-bind

父子組件通信:$emit,props

動態更新數據:vm.$set

翻譯服務的API,我這里用的是有道翻譯的api

——————————————————————————————分割線————————————————————————

TranslateForm.vue

英文

韓文

法文

俄文

export default {

name: 'TranslateForm',

data: function () {

return {

text: '',

to: 'en'

}

},

methods: {

formSubmit: function () {

this.$emit('formSubmit', this.text, this.to)

}

}

}

這里沒啥好說的,text和to兩個變量分別是要翻譯的文字和翻譯語言的選項,this.$emit把數據傳給父組件使用

根組件APP

簡單翻譯

簡單/易用/便捷

import TranslateForm from './components/TranslateForm.vue'

import TranslateText from './components/TranslateText.vue'

import md5 from 'blueimp-md5'

import $ from 'jquery'

export default {

name: 'App',

data: function () {

return {

translatedText: '2',

appKey: '47bb6e424790df89',

key: 'NH2VxBadIlKlT2b2qjxaSu221dSC78Ew',

salt: (new Date()).getTime(),

from: '',

to: 'en'

}

},

components: {

TranslateForm, TranslateText

},

methods: {

textTranslate: function (text, to) {

let vm = this

$.ajax({

url: 'http://openapi.youdao.com/api',

type: 'post',

dataType: 'jsonp',

data: {

q: text,

appKey: this.appKey,

salt: this.salt,

from: this.from,

to: to,

sign: md5(this.appKey + text + this.salt + this.key)

},

success: function (data) {

vm.$set(vm.$data, 'translatedText', data.translation[0])

}

})

}

}

}

#app {

font-family: 'Avenir', Helvetica, Arial, sans-serif;

-webkit-font-smoothing: antialiased;

-moz-osx-font-smoothing: grayscale;

text-align: center;

color: #2c3e50;

margin-top: 60px;

}

1、父組件拿到子組件傳來的數據后開始通過api來請求數據

2、我用的是有道api http://ai.youdao.com/login.s api文檔里對于api的使用已經很詳細了,我在這里是第一次使用api,沒覺得難

3、需要自己安裝兩個依賴:一個是jquery由于ajax請求api,一個是blueimp-md5在請求api時會用到里面的md5()

4、用vue.set將得到的結果綁定到translatedText這個變量,在這一步的時候我踩了兩個坑

第一個坑:習慣了以前的寫法,直接就這樣給變量賦值,結果變量的值并未改變,這時我還不知到有Vue.set這個語法,后面百度才知道的(不認真看文檔的下場)

success: function (data) {

this.translatedText = data.translation[0]

console.log(this.translatedText)

}

第二個坑:照著文檔來寫,然后報錯了:this.$set is not a function,這里報錯是因為success這個函數里的this指向的不是當前的VueModel

success: function (data) {

this.$set(this.$data, 'translatedText', data.translation[0])

}

所以我在前面定義了一個vm變量來充當當前Model,然后就不報錯了。

TranslateText.vue

{{translatedText}}

export default {

name: 'TranslateText',

props: [

'translatedText'

]

}

props接收父組件傳值來使用

最后

這個文章我自己看了一下,寫的確實不好,許多地方不通順,希望大家多多包涵

以上所述是小編給大家介紹的vue translate peoject實現在線翻譯功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

總結

以上是生活随笔為你收集整理的vue 后台翻译_vue translate peoject实现在线翻译功能【新手必看】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。