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

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

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

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

Q&A

解決済

1回答

8557閲覧

vue.jsのテンプレートが一瞬表示されてしまう件

tesopgmh

総合スコア146

Vue.js

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

0グッド

0クリップ

投稿2017/09/07 02:21

表題の件でvue.jsの{{value}}のようなテンプレートを処理完了まで隠したい
一般的な対策方法は

v-cloak

をタグに付けてcssで

[v-cloak] { display: none; }

とします。

そこで、本題ですが
{{value}}みたいなテンプレートが画面上に出ないのをデフォルトにするべきだと思うのですが
なぜvue.jsは出るのがデフォルトなのでしょうか?{{value}}が一瞬出てもいいのが世界的には多数なの?気にしているのは日本人だけ?明らかに不格好だと思うし、多くのWEBを知らない人は一瞬バグったと思うでしょう。

いちいちv-cloakを付けずに全ての処理のテンプレートを完了するまで隠したい(または描写してほしくない)のですが
そいいうことはvue.jsでは不可能なのでしょうか?

お忙しいところ恐縮ですがご存知の方お教えくださいませ

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

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

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

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

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

guest

回答1

0

ベストアンサー

v-cloakをデフォルトにすると、すべての描画が終わるまで画面が出ないので不安になるかも?と思います。

あと、大抵はデータベースからデータを非同期に読み込んで画面を組み立てることが多いと思いますが、その場合はLoading画面を出すことが多いので、v-cloakは不要です。

{{ Mustache }}が一瞬表示されるのが嫌ならv-textを使う手もありますね。

投稿2017/09/07 02:30

編集2017/09/07 02:35
naga3

総合スコア1293

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

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

tesopgmh

2017/09/07 02:59

おお!v-textを使う方法もあるんですね! >Loading画面を出すことが多い というのはレイヤー等で画面を隠すということですか? javascript側で組み立てない限り、HTML側は先に表示されてしまいますよね??
naga3

2017/09/07 03:09

<div v-if="loading">Loading..</div> <div v-if="!loading">メインコンテンツ</div> 自分はこんな感じでloadingをtrueにしておいて、データの読み込みがすべて終わったらfalseにします。 これで{{ Mustache }}が出ることはあまりないのですが、気になるときはv-cloakやv-textを使います。
tesopgmh

2017/09/07 03:20

なるほどですね!具体的な記述ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問