ヴューへの浅い深い:データバインディング

前のデータは、我々は簡単なレンダリングを使用するので、私たちはダイナミックタグをレンダリングしたい場合はclassそう何を動作させることができますか?

なぜバインド

式を含む単純なデータのレンダリング、機能が含まれています。実際には、単にラベルのレンダリングでは、次の条件がそれを行う方法を満たしている場合:

  • ラベル内の「番組操作」のいくつかの種類が必要。

  • フローは、異なるデータで様々なレンダリングを制御するために制御する必要があります。

  • 私たちは、アレイをレンダリングする必要があります。

単純な問題を解決することはできませんレンダリングされる。この時間は、どのように?

出てくるデータバインディングそれを!

何をして結合されます

結合が最初であるものを見つけるために何であるかを見る前に命令

「VUE」では、コマンドがであるv-、制約(それは同じメソッドとネイティブのラベルを使用しているため、ここではカスタムコンポーネントにもラベルのために一緒にグループ化されている)、その値が同じテンプレート構文でタグを変更するために使用される特殊な属性の接頭辞、 、正規表現、変数のためのサポート。

  • 命令それらの値の変化を監視するために、そして内DOM反応にそれを変更します

最後に、私たちは例を見て最後の章:

<h1>{{ if(msg == '1') return time }}</h1>

ここでは、時刻を表示するが、残念ながら、JSテンプレート構文文法をサポートしていないかどうかを制御するために、フロー制御を使用したいです。

しかし、「VUE」テンプレート構文を補うために、このような命令では後悔jsの構文はサポートされていません。

V-IF

改訂されたコードを見てみましょう:

<h1 v-if="msg=='1'">{{ formatTime(time) }}</h1>

最初のmsg代入の値は1

[変更msgの外観の値を:

私たちのためには、何を示さなかったmsg値はありません1

v-if 命令は、我々が最初に提唱し第二の問題に最適なソリューションです。

  • フローは、異なるデータで様々なレンダリングを制御するために制御する必要があります

私たちは、トピックの先頭に戻りましょう。

これは命令であり、ネイティブの公式の命令は、ディレクティブは、タグの属性を結合するように設計されています。

V-バインド

非常にイメージの命名、bind直訳が意味するようにバインドされています。

どのようにバインドします

ここでの使用divラベルがどのように表示されv-bind、別のラベルに同じトークンによって使用し、:

<div v-bind:属性名="表达式"></div>

私たちは、例えば、練習について最初の質問をしてください。

  • ラベル内の「番組操作」のいくつかの種類が必要

ここでは、に基づいているisDarkことの表示時間を決定するために、背景色の値

  • ときisDarkの時間は、黒、白のテキストに背景色事実です。

  • ときにisDark時間が偽である、背景色は黒に白のテキストをオンにします。

まず定義しますisDark

  data() {
    return {
      msg: 'hello vue',
      time: new Date(),
      isDark: False
    }
  }

次に、2つの条件の下でスタイルについて追加します。

<style>
  .dark{
    background-color: black;
    color: white;
  }

  .light{
    background-color: white;
    color: black;
  }
</style>

する次h1結合命令にタグを付けます:

<h1 v-bind:class="isDark ? 'dark' : 'light'">{{ formatTime(time) }}</h1>

結果は以下の通りであります:

私たちはしますisDark値をtrueに変更します。

需要の効果を達成するのに最適です。

これは、命令の魅力です。

最後の質問

2つの命令は、上述した私たちは、もともと前方に置く2の3つの質問を解決するために、そして残りの1つはありますか?

  • 私たちは、アレイをレンダリングする必要があります

我々は、テーブルをレンダリングする必要がある場合、それの配列をレンダリングする方法を、このシナリオが発生しますか?テンプレートの構文とは、このような複雑な操作をサポートしていません。

この章の最後の命令を行います。

V-用

ああ、まだ非常にイメージです。また、まあ〜のために持っていJS

それが何をしているかを見てみましょう:

  • v-for これは、各項目(バインドリスト)データソースに対しても同様のラベルを生成します。

そして、他のラベルに似てここに行うための命令でラベルを使用する方法を見て、取ります:

<!-- 写法1 -->

<a v-for="别名 in 数据源" v-bind:key="唯一标识">{{ 别名.字段 }}</a>

<!-- 写法2 -->

<a v-for="(下标, 别名) in 数据源" v-bind:key="唯一标识">{{ 别名.字段 }}</a>

新しいバージョンがあるためvue必要とv-forラベルがレンダリングする命令を一意に識別するために使用されるキーをバインドする必要があり、ほとんどの場合、私たちが直接識別するためにインデックスを使用することができ、

私たちは、最初のURLの配列を定義し、プレゼンテーションの前に、コードを使用し続けること:

  data() {
    return {
      msg: 'hello vue',
      time: new Date(),
      isDark: true,
      urlList: [
        {
          text: '链接1',
          url: '#1'
        },

        {
          text: '链接2',
          url: '#2'
        },

        {
          text: '链接3',
          url: '#3'
        }
      ]
    }
  }

そして、スケジュールの波をレンダリングします:

<a v-for="(item, index) in urlList" v-bind:key="index" v-bind:href="item.url">{{item.text}}</a>

結果は以下の通りであります:

結果のレンダリングは3であるa、ラベル、非常に正しいです-

最後の質問には完璧なソリューションを提供します。

いくつかの命令は何ですか?

他の公式命令、ここで言及があります。

V-上

v-on コマンドは、ボタンのクリックイベントとして、イベントをバインドすることができます。

上記の例のようにコンテキストを切り替え、イベントは、ボタンクリックすることによって修正することができるisDark、それによって背景を変更するために制御する、値を。たびに手動で次の変更する必要はありませんisDarkの値を。

この練習は〜あなたが来る好奇心を停止しないで残っています

おすすめ

転載: www.cnblogs.com/By-ruoyu/p/11123102.html