今回は、Vue.js メソッドの使い方と、Vue.js メソッドを使用する際の注意点について説明します。以下は実践的なケースですので、見てみましょう。
1. まず、最も明らかな違いは、呼び出し時にメソッドを () で追加する必要があることです。
2. 効果は同じですが、computed はその依存関係キャッシュに基づいています。値は、関連する依存関係が変更された場合にのみ再評価されます。
メソッドでは、再レンダリングするときに必ず関数が呼び出されて実行されます
理解を容易にするために、まずソースコードをアップロードしましょう
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>title</title> <script src="https://cdn.bootcss.com/vue/2.4.2/vue.min.js"></script> </head> <body> <p class="test"> <!--computed计算属性--> <p>{{now}}</p> <p>{{now}}</p> <p>{{now}}</p> <p>{{now}}</p> <hr /> <!--横线分割--> </p> <p class="test2"> <!--methods方法,注意new()加了括号--> <p>{{now()}}</p> <p>{{now()}}</p> <p>{{now()}}</p> <p>{{now()}}</p> </p> </body> <script type="text/javascript"> var myVue = new Vue({ el: ".test", computed: { now: function() { var yanshi = 0; for(var o = 0; o < 2000; o++) { //延时 for(var q = 0; q < 2000; q++) { yanshi++; } } return Date.now() } } }); var vue2 = new Vue({ el: '.test2', methods: { now: function() { var yanshi = 0; for(var o = 0; o < 2000; o++) { for(var q = 0; q < 2000; q++) { yanshi++; } } return Date.now() } } }) </script> </html>
実行結果は上記のようになっていることがわかります。計算されたプロパティは、ページに入るたびに使用されます。これはキャッシュに依存します。 (遅延がある場合、複数の出力時間は同じになります)
では、関連する依存関係が変更されたときに再評価される値は何ですか?
、これは、メッセージがまだ変更されていない限り、reversedMessage 計算プロパティに複数回アクセスすると、関数を再度実行することなく、以前に計算された結果がすぐに返されることを意味します。 メソッドはリアルタイムであり、再レンダリングする場合、関数は常にキャッシュなしで再呼び出しされて実行されます (複数の出力時間は異なります) 計算されたパフォーマンスを使用すると優れていると言えますが、使用しない場合キャッシュしたくない場合は、method 属性を使用できます。 computed 属性にはデフォルトでは getter のみがありますが、必要に応じて setter を提供することもできます。つまり、実際には computed 属性はパラメータを渡すこともできます。ps: vue の計算プロパティ computed とメソッドの違いを見てみましょう
在new Vue的配置参数中的computed和methods都可以处理大量的逻辑代码,但是什么时候用哪个属性,要好好区分一下才能做到正确的运用vue。 computed称为计算属性,顾名思义,计算就要返回一个计算的结果,所以,当我们要处理大量的逻辑,但是最后要取得最后的结果的时候可以用computed; 简单示例: 要求: <input type="text v-model="num1"><input type="text v-model="num2"> 现在要返回num1和num2的和; <script> new Vue({ el:"#box", data:{ num1:0, num2:0 } computed:{ result:function(){ return this.num1 + this.num2 // 计算属性必须有一个返回值 } } }) </script> methods:是方法的意思,在js中,我们把一些函数叫做方法,一般情况下,要触发这个方法就要执行,要执行就要有一个源来触发,所以就需要一个事件源。这是和computed的一点不同之处; methods的示例: 要求: <\button @click="do()">点击弹出<\/button> <script> new Vue({ el:"#box", data:{ num1:0, num2:0 } methods:{ do:function(){ alert('ok') //这里根据情况,可以返回有返回值也可以没有返回值。 } } }) </script> 对比computed 和 methods: computed计算的结果如果不发生改变就不会触发result这个函数。而methods中一般都是定义的需要事件触发的一些函数。每次只要触发事件,就会执行对应的方法。如果把computed中的方法写到method中会浪费性能。 computed必须返回一个值页面绑定的才能取得值,而methods中可以只执行逻辑代码,可以有返回值,也可以没有。
Angularjsのコントローラーの相互通信機能の詳細な説明
以上がVue.js メソッドの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。