Vue.js学習とアプリケーション(2)

vue.js

ユーザーインターフェイスを構築するためのプログレッシブフレームワーク。

公式チュートリアル:https://cn.vuejs.org/v2/guide/
オンライン編集:https://codepen.io/pen

Vue.jsの中核は、簡潔なテンプレート構文を使用して宣言的にデータをDOMにレンダリングできるシステムです。

Vueテンプレートの構文

補間

  • テキスト:{ {メッセージ}}
  • 補間を1回だけ実行し、後続のオブジェクトで変更しない:{ {msg}}
  • htmlタグを挿入します。
  • 機能(htmlタグの属性):
  • JavaScript式(ユーザーが作成したグローバル変数にアクセスできません):{ {msg? 'YES': 'NO'}}

命令

  • v-ifにより、Vueはこのタグをロードするかどうかを決定できます。

    今あなたは私を見ます

  • v-bindはパラメーターをurlに渡すことができます:
  • v-onは、DOMイベントを監視するために使用されます。
  • 動的パラメーターの角括弧でJavaScript式を記述します。ヌル、引用符、スペースは使用し
    ません<a v-bind:[attributeName]=“url”>
    <a v-on:[eventName]=“doSomething”>
  • 命令修飾子「。」
    :.preventは、次の
    ように、トリガーされたイベントに対してevent.preventDefault()を呼び出すようにv-on命令に指示します

略語

Vueは一般的に使用されるv-bindとv-onの略語を提供しており、公式ウェブサイトはVueをサポートするブラウザーがこの記述をサポートすると主張しています:

  • v-bind =:など:
    完全な構文の
    省略形
  • v-on = @など:
    完全な構文
    <a @click="doSomething">の省略形

計算された属性

実際、JavaScript式はVueのテンプレート構文で記述できます。
{ { message.split('').reverse().join('') }}
ただし、読みやすさと後での保守性を高めるために、Vueインスタンスにはより強力な「計算」属性があります。

var vm = new Vue({
  el: '#example',
  data: {message: 'Hello'},
  computed: {
    // 计算属性的 getter
    reversedMessage: function () {
      // `this` 指向 vm 实例
      return this.message.split('').reverse().join('')
    }
  }
})

その後、直接{ {reversedMessage}}値を取得でき、このメッセージはレスポンシブ計算で使用されるため、コンソールメッセージの変更値、reversedMessageの変更が続きます。
** PS:計算された属性はキャッシュされます。**つまり、レスポンシブ依存関係の値(上記の例ではメッセージ)が変化しない場合、統合された計算属性を複数回呼び出すと、最初の計算の結果が取得されます。公式説明は、同じ値の計算が多数ある場合の計算速度を改善することです。したがって、この計算された属性には、特定の監視機能があります。
さらに、上記はすべて計算プロパティのゲッターメソッドです。公式Webサイトでは、セッターメソッドもあると指摘しています。

// ...
computed: {
  fullName: {
    // getter
    get: function () {
      return this.firstName + ' ' + this.lastName
    },
    // setter
    set: function (newValue) {
      var names = newValue.split(' ')
      this.firstName = names[0]
      this.lastName = names[names.length - 1]
    }
  }
}

以下はアクティブに実行している場合です:、vm.fullName = 'willson H'setterメソッドが呼び出されます。
それは不必要だと思います。fullNameを変更する必要がある場合、ほとんどの場合、firstNameとlastNameを変更する必要があります。現時点では、計算が自動的にトリガーされます。手動でセッターを追加すると、Vueがより複雑に見えます。


メソッド属性メソッド

中括弧で直接呼び出すことができます

<p>Reversed message: "{
   
   { reversedMessage() }}"</p>
// 在组件中
methods: {
  reversedMessage: function () {
    return this.message.split('').reverse().join('')
  }
}

上記の2つの例の計算結果はまったく同じであり、計算された属性は、応答依存性に基づいてキャッシュされます。ただし、違いは、計算された属性が、応答の依存関係に基づいてキャッシュされることです。これらは、関連する事後依存関係が変更された場合にのみ再評価されます。メソッド属性は、呼び出されるたびに再計算されます。


リスニング属性ウォッチ

Vueは、Vueインスタンスのデータ変更を監視して応答するためのより一般的な方法、つまりプロパティのリスニングを提供します。つまり、データソースが変更されると、リスナープロパティの対応するメソッドが呼び出されます。

<div id="div1">
  城市:<input v-model="city">
  整理:<p>{
   
   {cityStr}}</p>
</div>

var vm = new Vue({
  el: '#div1',
  data: {
    city: '',
    cityStr: ''
  },
  watch: {
    city: function (val) {
      if(val.indexOf('市')<0){
        this.cityStr = val + '市'
      }else{
        this.cityStr = val 
      }
    }
  }
})

私が挙げた例は比較的単純です。公式Webサイトで提供されている例には、lodashツールライブラリとaxios httpライブラリが含まれています。興味がある場合は、公式Webサイトの例をご覧ください。
リスナーは、主にリスナーをカスタマイズする必要がある場合に使用されます。実際、ほとんどの場合それを使用できます。属性の計算を解決できます。

著作権表示:記事の内容はインターネット上で要約されています。元の著者の権利を侵害している場合は、削除または承認について私に連絡してください

おすすめ

転載: blog.csdn.net/qq845484236/article/details/103871078