在Vue中,我們會大量使用到計算屬性computed和methods,會發現它倆看起來很像,那使用上到底有什么區別呢???
--------------------------------------------------------------------------------------------------------------------------------------
一、computed與methods的區別:
1.實質上computed計算屬性中定義的是屬性而不是函數,所以使用時直接用{{xxx}},而不要使用{{xxx()}};——后面詳細說明
而methods中定義的是函數,因此使用時需要{{xxx()}}。
2.計算屬性computed被使用時會進行緩存,如果需要多次使用,則只需要調用1次;
而methods中的函數無緩存,如果需要使用n次,則需要調用n次。
因此,需要多次使用時,推薦使用計算屬性computed。
--------------------------------------------------------------------------------------------------------------------------------------
二、為什么使用計算屬性computed時不用()
計算屬性的實質為屬性,其中定義了set()方法和get()方法:
而一般使用中不需要set方法,我們只需要get方法,因此計算屬性一般為“只讀屬性”。
去掉無用的set方法后,computed屬性簡寫為我們常見的方式:
因此,只是形式上看起來像函數,實質上computed計算屬性是屬性。使用計算屬性時,直接使用{{fullName}},不要加()。