计算属性缓存 和方法不同点
方法:
在控制台中改变app7.message的值,方法就会执行
html:结构
{
{message}}{
{message__()}}
js:
var app7=new Vue({ el:"#app7", data:{ message:"原来的信息" }, computed:{ message_:function(){ return Date.now() //没有对其他部分产生依赖 } }, methods:{ message__:function () { return Date.now() } } })
属性:
在控制台中改变app7.message的值,计算属性都不会变,不会再次执行,因为该计算属性没有对其他东西产生依赖
html结构:
{
{message}}{
{message_}}
js:同上
每次引起重绘(例如:app7.message的改变),方法message__都会执行;
如果计算属性没有对其他东西(例如app7.message)产生依赖,则会保持第一次结果,不会再次执行; 如果对其他产生依赖,每当该依赖的东西发生变化,则该计算属性就会再次执行一次
借鉴vue官网的话:计算属性是基于它们的依赖进行缓存的
如果把js改成:计算属性对app7.message产生依赖,app7.message发生变化,则计算属性则会再次执行
var app7=new Vue({ el:"#app7", data:{ message:"原来的信息" }, computed:{ message_:function(){ return this.message } }, methods:{ message__:function () { return Date.now() } } })