私はVueを初めて使いました。私はviewmodelデータにアクセスする方法については不明です。 いつthis.property
を使用する必要がありますか?vm.$data.property
をいつ使用する必要がありますか?
次の例では、私は行を選択できるテーブルを持っています。すべての行を選択し、すべての行を選択解除するメソッドがあります。選択解除では、私はthis.selectedRows
によってselectedRowsにアクセスできます。しかしselectではthis.selectedRowsが定義されていないので、rowTableVm.$data.selectedRow
を使用する必要があります。
いつこれを使用する必要がありますか?いつvm。$ dataを使用する必要がありますか?
<tbody>
<tr v-for="row in get_rows()">
<td>
<input type="checkbox" v-bind:value="row.id" v-model="selectedRows">
</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
var rowTableVm = new Vue({
el: '#rowTable',
data: {
rowList: [{..},{..}],
selectedRows: []
},
methods: {
get_rows: function get_rows() {
return this.rowList;
},
deselect_rows: function() {
this.selectedRows= [];
},
select_rowse: function() {
this.deselect_rows();
this.get_rows().forEach(function (entry) {
rowTableVm.$data.selectedRows.push(entry.id);
});
}
}
});
これはVuejsとは関係がありません。forEach(と他の多くの場所)では 'this'がどのように動作するのか、Javascriptそのものの基本的なものです。 –
いつもvm。$ dataを参照する方が良いですか?私はほとんどの場合、forEachブロックをたくさん使用しています。 –
@LordVermillion私が言ったように、あなたは可能な限り 'vm。$ data'を使うべきではありません。代わりに 'this'への可変参照を使用することに固執してください。あるいは、 'Array.forEach'のように' forEach(callback、thisArg) 'のようなメソッドシグネチャがあります。ここで' thisArg'は明示的に使用する 'this'参照を渡すことができます。したがって、this.get_rows()。forEach(function(entry){。。。、this)};を実行することができ、 'forEach'コールで' this'が参照するものを再バインドする必要があります。しかし、非常に悪い習慣であるので、 'vm。$ data'を絶対に避けてください! –