Flex數(shù)據(jù)綁定陷阱
本文和大家重點討論一下Flex數(shù)據(jù)綁定陷阱,Usingbindinginplaceofdirectassignment在直接賦值的地方使用綁定,但有一種情況就是你可以不使用綁定,使用直接賦值就可以成功實現(xiàn)同樣效果的話,你***不要使用綁定。
Flex數(shù)據(jù)綁定陷阱
◆Usingbindinginplaceofdirectassignment在直接賦值的地方使用綁定
有一種情況,就是你可以不使用綁定,使用直接賦值就可以成功實現(xiàn)同樣效果的話,你***不要使用綁定。我已經(jīng)看到過很多形式的這類型錯誤了。
下面的代碼就可以說明:
- <?xmlversionxmlversion="1.0"encoding="utf-8"?>
- <s:Applicationxmlns:fxs:Applicationxmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:s="library://ns.adobe.com/flex/spark"
- minWidth="1024"minHeight="768">
- <fx:Script>
- <![CDATA[
- privatevartext:String;
- ]]>
- </fx:Script>
- <s:layout>
- <s:VerticalLayout/>
- </s:layout>
- <s:TextInputids:TextInputid="textInput2"text="{text}"/>
- </s:Application>
這段代碼中定義了一個文本輸入框,將私有成員變量綁定到這個文本輸入框的text屬性上。它看起來無害,對不對?我經(jīng)常看到Flex應用程序中使用這些類型的標簽。Flex的編譯器會自動生成代碼來實現(xiàn)Flex數(shù)據(jù)綁定。
你會發(fā)現(xiàn),盡管你不需要綁定text字符串,因為它是一次性賦值的,但是編譯器仍然會生成代碼,來適應屬性Flex數(shù)據(jù)綁定的條件。另外,有些情況下你需要在賦值后解除綁定,或是移出綁定代碼來減少開銷,但是你在MXML中使用<mx:Binding>標簽后將不能這樣做。
作為一個經(jīng)驗法則,應避免使用綁定到一個私有變量。
在上面的例子中,你可以直接給輸入文本框設置值。
- <s:TextInputids:TextInputid="textInput2"text="sometextgoeshere"/>
當你使用直接賦值時,你會大大減少你的開銷,因為編譯器不再會生成你不需要的綁定代碼。作為一個通用的經(jīng)驗法則,不要使用Flex數(shù)據(jù)綁定,除非你綁定的值可能或肯定會改變。
【編輯推薦】
- Flex數(shù)據(jù)綁定中難以發(fā)現(xiàn)的無聲錯誤
- Flex2.0Beta1新功能出爐
- Flex數(shù)據(jù)綁定中常見的誤用和錯誤
- Flex數(shù)據(jù)綁定技巧
- 剖析Flex DataGrid分頁控件的兩種分頁形式用法