在父組件中有變量 translatedText: "1",在api中拿到值后賦給this.translatedText,控制臺顯示this.translatedText的值已經(jīng)改變,但自子組件中translatedText的值仍是‘1’父7組件App.vue<template>
??<div?id="app">
????<h2>簡單翻譯</h2><span>簡單/易用/便捷</span>
????<TranslateForm?v-on:formSubmit="textTranslate"></TranslateForm>
????<TranslateText?:translatedText?="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?{
??????appKey:?'47bb6e424790df89',
??????key:?'NH2VxBadIlKlT2b2qjxaSu221dSC78Ew',
??????salt:?(new?Date()).getTime(),
??????from:?'',
??????to:?'en',
??????translatedText:?'1'
????}
??},
??components:?{
????TranslateForm,?TranslateText
??},
??methods:?{
????textTranslate:?function?(text)?{
??????$.ajax({
????????url:?'http://openapi.youdao.com/api',
????????type:?'post',
????????dataType:?'jsonp',
????????data:?{
??????????q:?text,
??????????appKey:?this.appKey,
??????????salt:?this.salt,
??????????from:?this.from,
??????????to:?this.to,
??????????sign:?md5(this.appKey?+?text?+?this.salt?+?this.key)
????????},
????????success:?function?(data)?{
??????????this.translatedText?=?data.translation[0]
??????????console.log(this.translatedText)
????????}
??????})
????}
??}
}
</script>
<style>
</style>子組件 TranslatedText.vue<template>
??<div?id="TranslateText">
????<h2>內(nèi)容</h2>
????<p>{{translatedText}}</p>
??</div>
</template>
<script>
export?default?{
??name:?'TranslateText',
??props:?[
????'translatedText'
??]
}
</script>
<style></style>輸出結(jié)果
4 回答

林逸舟丶
TA貢獻124條經(jīng)驗 獲得超28個贊
有個建議就是有點強行組件化的問題 開始做Vue時我也喜歡拆很多組件出來 但記住組件是為了復用(常見如公共菜單按鈕欄等) 如非能夠復用的情況其實并不用真的拆出組件來 不利用Vuex 組件之間的通信其實還是蠻講究的
添加回答
舉報
0/150
提交
取消