ホームページ  >  記事  >  ウェブフロントエンド  >  VUEで計算属性を変更しても選択した値が変わらない問題の対処方法

VUEで計算属性を変更しても選択した値が変わらない問題の対処方法

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-12 13:54:423567ブラウズ

今回はVUEで計算属性を変更しても選択値が変わらない場合の対処法VUEで計算属性を変更しても選択値が変わらない場合の注意点についてお届けします。以下に実際のケースを見てみましょう。

まずコードを入力してください:

//...
<body>
  <p id="qwe">
    <select v-model="selected">
      <option v-for="item in da" :value="item.value">{{item.value}}</option>
    </select>
    <span>{{selected}}</span>
  </p>
  <script>
    var dt = [{
      value: '111',
      label: 'aaa'
    }, {
      value: '222',
      label: 'bbb'
    }, {
      value: '333',
      label: 'ccc'
    }, {
      value: '444',
      label: 'ddd'
    }, {
      value: '555',
      label: 'fff'
    }];
    var vm = new Vue({
      el: '#qwe',
      data: {
        options: [{
          value: '选项1',
          label: '黄金糕'
        }, {
          value: '选项2',
          label: '双皮奶'
        }, {
          value: '选项3',
          label: '蚵仔煎'
        }, {
          value: '选项4',
          label: '龙须面'
        }, {
          value: '选项5',
          label: '北京烤鸭'
        }],
        selected: ''
      },
      computed: {
        da: function () {
          var _self = this;
          return _self.options.filter(function (item) {
            return +item.value.split('')[2] > 2;
          });
        }
      }
    })
  </script>
</body>
</html>

上記のコードは、vue の v-for 命令を使用してデータをバインドし、オプションを生成します。しかし、今日書き方を学習しているときに、突然問題を発見しました。それは、計算された属性 da を v-for 命令にバインドして置き換えるというものです。結果は、ソース データ オプションです。計算されたプロパティは正しいですが、選択されたプロパティは変更されていません。つまり、以下に示すように、ページ上のドロップダウン ボックスのテキストは、展開されていないときは変化しません。

ここでは、ドロップダウン ボックスのオプションが

更新

されましたが、選択された属性は最後に選択された値を キャッシュしているため、同期的に更新されていないことがわかります。 このように使用することはめったにないので、このデザインが妥当かどうかはわかりません。

しかし、問題がある場合は解決しなければなりません。

selected='' を computed の計算された属性に追加し、依存関係が更新されるたびに selected 属性をリセットします。 この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

ファイルアップロード用のAjaxUpLoad.js


Vueのカルーセルコンポーネントの使用方法


以上がVUEで計算属性を変更しても選択した値が変わらない問題の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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