最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue translate peoject實(shí)現(xiàn)在線翻譯功能【新手必看】

 更新時(shí)間:2018年06月07日 09:37:42   作者:ZONE_98F  
這篇文章主要介紹了vue translate peoject實(shí)現(xiàn)在線翻譯功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

 開始

這是一適合新手練習(xí)的小項(xiàng)目,一個(gè)在線翻譯的demo。

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

當(dāng)然,這個(gè)項(xiàng)目里因?yàn)槭蔷毷?,所以?qiáng)行組件化來涉及更多的vue用法。

目錄結(jié)構(gòu)

src下新建了兩個(gè)文件:TranslateForm.vue表單組件和TranslateText.vue翻譯結(jié)果組件

涉及的語法

  • 指令:v-model,v-on,v-bind
  • 父子組件通信:$emit,props
  • 動(dòng)態(tài)更新數(shù)據(jù):vm.$set
  • 翻譯服務(wù)的API,我這里用的是有道翻譯的api

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

TranslateForm.vue
<template>
 <div>
 <!--加上頁面修飾符,提交時(shí)就不回再重載頁面-->
 <form v-on:submit.prevent="formSubmit">
  <input type="text" v-model="text" placeholder="輸入需要翻譯的內(nèi)容"/>
  <select v-model="to">
  <option value ="en">英文</option>
  <option value ="ko">韓文</option>
  <option value ="fr">法文</option>
  <option value ="ru">俄文</option>
  </select>
  <input type="submit" value="翻譯"/>
 </form>
 </div>
</template>
<script>
export default {
 name: 'TranslateForm',
 data: function () {
 return {
  text: '',
  to: 'en'
 }
 },
 methods: {
 formSubmit: function () {
  this.$emit('formSubmit', this.text, this.to)
 }
 }
}
</script>
<style></style>

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

根組件APP

<template>
 <div id="app">
 <h2>簡單翻譯</h2><span>簡單/易用/便捷</span>
 <TranslateForm v-on:formSubmit="textTranslate"></TranslateForm>
 <TranslateText :translated-text="translatedText"></TranslateText>
 </div>
</template>
<script>
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])
  }
  })
 }
 }
}
</script>
<style>
 #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;
 }
</style>

1、父組件拿到子組件傳來的數(shù)據(jù)后開始通過api來請(qǐng)求數(shù)據(jù)
2、我用的是有道api http://ai.youdao.com/login.s api文檔里對(duì)于api的使用已經(jīng)很詳細(xì)了,我在這里是第一次使用api,沒覺得難
3、需要自己安裝兩個(gè)依賴:一個(gè)是jquery由于ajax請(qǐng)求api,一個(gè)是blueimp-md5在請(qǐng)求api時(shí)會(huì)用到里面的md5()
4、用vue.set將得到的結(jié)果綁定到translatedText這個(gè)變量,在這一步的時(shí)候我踩了兩個(gè)坑

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

 success: function (data) {
   this.translatedText = data.translation[0]
   console.log(this.translatedText)
  }

第二個(gè)坑:照著文檔來寫,然后報(bào)錯(cuò)了:this.$set is not a function,這里報(bào)錯(cuò)是因?yàn)閟uccess這個(gè)函數(shù)里的this指向的不是當(dāng)前的VueModel     

success: function (data) {
   this.$set(this.$data, 'translatedText', data.translation[0])
  }

所以我在前面定義了一個(gè)vm變量來充當(dāng)當(dāng)前Model,然后就不報(bào)錯(cuò)了。

TranslateText.vue
<template>
 <div id="TranslateText">
 <p>{{translatedText}}</p>
 </div>
</template>
<script>
export default {
 name: 'TranslateText',
 props: [
 'translatedText'
 ]
}
</script>
<style></style>

props接收父組件傳值來使用

最后

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

代碼我上傳到github了 https://github.com/Zone-F/vue... (沒加樣式)

以上所述是小編給大家介紹的vue translate peoject實(shí)現(xiàn)在線翻譯功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Vue項(xiàng)目打包壓縮的實(shí)現(xiàn)(讓頁面更快響應(yīng))

    Vue項(xiàng)目打包壓縮的實(shí)現(xiàn)(讓頁面更快響應(yīng))

    這篇文章主要介紹了Vue項(xiàng)目打包壓縮的實(shí)現(xiàn)(讓頁面更快響應(yīng)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • vue項(xiàng)目中如何添加枚舉

    vue項(xiàng)目中如何添加枚舉

    這篇文章主要介紹了vue項(xiàng)目中如何添加枚舉,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue3使用ref 獲取不到子組件屬性問題的解決辦法

    vue3使用ref 獲取不到子組件屬性問題的解決辦法

    父子組件使用<script setup>語法糖,父組件通過給子組件定義ref訪問子組件內(nèi)部屬性或事件,本文給大家介紹了解決vue3使用ref 獲取不到子組件屬性問題,文中通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • vue-cli項(xiàng)目配置多環(huán)境的詳細(xì)操作過程

    vue-cli項(xiàng)目配置多環(huán)境的詳細(xì)操作過程

    vue-cli 默認(rèn)只提供了 dev 和 prod 兩種環(huán)境。這篇文章主要介紹了vue-cli項(xiàng)目配置多環(huán)境的詳細(xì)操作過程,需要的朋友可以參考下
    2018-10-10
  • Vue3使用icon的兩種方式實(shí)例

    Vue3使用icon的兩種方式實(shí)例

    vue開發(fā)網(wǎng)站的時(shí)候,往往圖標(biāo)是起著很重要的作用,下面這篇文章主要給大家介紹了關(guān)于Vue3使用icon的兩種方式,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-11-11
  • vue跳轉(zhuǎn)頁面的幾種常用方法實(shí)例總結(jié)

    vue跳轉(zhuǎn)頁面的幾種常用方法實(shí)例總結(jié)

    Vue是一種流行的JavaScript框架,用于構(gòu)建用戶界面,在Vue中,頁面跳轉(zhuǎn)通常使用路由(Router)來實(shí)現(xiàn),除此之外還有很多方法,這篇文章主要給大家介紹了關(guān)于vue跳轉(zhuǎn)頁面的幾種常用方法,需要的朋友可以參考下
    2024-05-05
  • 深入理解Vue-cli4路由配置

    深入理解Vue-cli4路由配置

    Vue-router是Vue官方的路由插件,本文將結(jié)合實(shí)例代碼,介紹Vue-cli4路由配置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 如何在Vue和Spring?boot之間實(shí)現(xiàn)前后端連接

    如何在Vue和Spring?boot之間實(shí)現(xiàn)前后端連接

    最近搭建一個(gè)Springboot+vue前后端分離項(xiàng)目,真的很簡單,下面這篇文章主要給大家介紹了關(guān)于如何在Vue和Spring?boot之間實(shí)現(xiàn)前后端連接的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • vue.js實(shí)現(xiàn)二級(jí)菜單效果

    vue.js實(shí)現(xiàn)二級(jí)菜單效果

    這篇文章主要為大家詳細(xì)介紹了vue.js實(shí)現(xiàn)二級(jí)菜單效果的具體方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 淺談vue-cli5關(guān)于yarn的一個(gè)小坑

    淺談vue-cli5關(guān)于yarn的一個(gè)小坑

    本文主要介紹了vue-cli5關(guān)于yarn的一個(gè)小坑,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05

最新評(píng)論

青浦区| 郁南县| 呼伦贝尔市| 修文县| 北碚区| 景谷| 双江| 庄浪县| 忻州市| 广西| 南宫市| 铜陵市| 清远市| 许昌市| 含山县| 宁河县| 楚雄市| 开封县| 隆尧县| 惠东县| 吉林省| 吴旗县| 通河县| 全州县| 沁源县| 亳州市| 赤水市| 报价| 庆云县| 吴江市| 光山县| 旬邑县| 天门市| 将乐县| 潜江市| 甘孜县| 温泉县| 南召县| 衡阳县| 五华县| 崇州市|