質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

5003閲覧

Vue.jsのv-ifでの分岐が「初期値→createdの値」でちらつき表示される。

redux

総合スコア19

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/08/22 00:04

編集2020/08/22 00:09

起きている問題。

以下のソースのモジュールを表示する際に、最初の処理として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}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

①一番外側のdiv要素を <div v-if="created">に変更
②data内に created=""を追加
③created内のajax成功時の処理に_this.created = trueを追加
これで狙い通りの動きができました。

投稿2020/08/22 00:42

redux

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問