ホームページ  >  記事  >  ウェブフロントエンド  >  Vue の検出シーケンスにオブジェクトの新しいプロパティを追加する方法は何ですか?

Vue の検出シーケンスにオブジェクトの新しいプロパティを追加する方法は何ですか?

亚连
亚连オリジナル
2018-06-04 16:38:111708ブラウズ

以下では、Vue の検出シーケンスにオブジェクトの新しい属性を追加する方法を共有します。これは良い参考値であり、皆さんの役に立つことを願っています。

オブジェクトの新しいプロパティを vue の検出シーケンスに追加します

deepCopy(o1, o2) { // 将o2的内容拷贝给data中的o1
   var key, i
   if (o2 instanceof Array) {
    for (i = 0; i < o2.length; i++) {
     if (o2[i] instanceof Array) {
      this.$set(o1, i, [])
      this.deepCopy(o1[i], o2[i])
     }
     else if (o2[i] instanceof Object) {
      this.$set(o1, i, {})
      this.deepCopy(o1[i], o2[i])
     }
     else {
      this.$set(o1, i, o2[i])
     }
    }
   }
   else if (o2 instanceof Object) {
    for (key in o2) {
     if (o2[key] instanceof Array) {
      this.$set(o1, key, [])
      this.deepCopy(o1[key], o2[key])
     }
     else if (o2[key] instanceof Object) {
      this.$set(o1, key, {})
      this.deepCopy(o1[key], o2[key])
     }
     else {
      this.$set(o1, key, o2[key])
     }
    }
   }
   else {
    o1 = o2
   }
}

Vue ではルートレベルのリアクティブ プロパティを動的に追加できないため、インスタンスを初期化する前にルートレベルのリアクティブ プロパティを宣言する必要があります。単なる null 値です

属性が事前に宣言されておらず、後で追加された場合、一部の固定構造では変更を検出できません。たとえば、obj には key1 属性と key2 属性が必要であることがわかっており、それらを事前に初期化できます。これらが動的である場合、事前にそれを言うことはできません。後で追加すると、vue は変更を検出できなくなります。

このとき、dataで宣言した変数とその変数に代入したい値をパラメータとして渡すだけです

以上が皆さんの参考になれば幸いです。将来。

関連記事:

Vue が配列またはオブジェクトの変更を検出できない問題を解決するにはどうすればよいですか?

監視監視オブジェクトの変更とvueでの対応する値を実装する方法

監視ルーティングの変更と監視オブジェクトの監視(詳細なチュートリアル)

以上がVue の検出シーケンスにオブジェクトの新しいプロパティを追加する方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。