要說@NoLayout,必須先說一下vaadin的server端產生state變化以後到了客戶端這邊,客戶端會假設server端任何關於state的改變都會引發客戶端組件的尺寸上的改變。可是有些狀況並不是如此,好比,當server端僅僅是更新了某個會被顯示在客戶端組件中的值,而並不是客戶端組件尺寸(或佈局)。這時,在state中的那個僅僅用於改變客戶端組件的顯示值的成員變量就能夠用@NoLayout來標註。這樣,那個成員變量的值發生改變時,客戶端不會去執行從新佈局這個步驟,而僅僅是得到當前變化的值。ide
能夠去看Vaadin7(7.6.8)中ProgressBarState類的源代碼,其中progressbar的state用了@NoLayout annotation。
佈局