起きている問題。
以下のソースのモジュールを表示する際に、最初の処理としてajaxでログイン状態かどうかを判定しています。
ログイン状態の場合、is_login変数に値が格納されます。
is_login変数には、初期値が必要なので「''」で登録しています。
この影響で、ログイン状態でこのページを表示した場合...
v-if="is_login"がfalseの部分のみ一瞬表示 → trueの部分のみ表示
といったように本来表示したくない画面が一瞬表示されてから、本来の画面になってしまいます。
他のライフサイクルフックも試してみましたが、上手くいかないようです。
実現したい事
ログイン状態時は、is_loginがtrueの処理のみ表示する。
js
1export default { 2 template: ` 3 <div> 4 <p v-if="!is_login">あなたはログインしていません。</p> 5 <div v-if="is_login"> 6 <p>以下のボタンからログアウトしてください。</p> 7 <input type="button" value="ログアウト" @click="logout"> 8 </div> 9 </div> 10 ` 11 , 12 data: function() { 13 //変数初期値 14 return { 15 is_login: '', 16 } 17 }, 18 created: function(){ 19 //vue.jsがtemplateにマウントする前の処理 20 var _this = this; 21 axios.get("/is_login",this.config) 22 .then(function(res){ 23 _this.is_login = res.data 24 }) 25 .catch(function(res){ 26 }) 27 }, 28 methods: { 29 //省略 30 } 31}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。