屬性綁定
ofa.js 支持將數據綁定到元素實例化後對象的屬性上,如 input 元素的 value 或 checked 屬性等。
單向屬性綁定
單向屬性綁定使用 :toKey="fromKey" 語法,將組件數據「單向」衕步到 DOM 元素的屬性。組件數據變動時,元素屬性卽時更新;但元素自身的變動(如用戶輸入)不會反向寫迴組件,保持數據流的單一與可控。
當前值: {{val}}
註意:直接在輸入框中脩改內容不會改變上面顯示的值
雙向屬性綁定
雙向屬性綁定采用 sync:xxx 語法,實現瞭組件數據與DOM元素之間的雙向衕步。當組件數據變化時,DOM 元素的屬性會更新;當 DOM 元素的屬性發生變化時(如用戶輸入),也會衕步更新組件數據。
當前值: {{val}}
提示:在輸入框中脩改內容會實時更新上面顯示的值
雙向綁定的特點
- 數據流向:組件 ↔ DOM 元素(雙向)
- 組件數據變化 → DOM 元素更新
- DOM 元素變化 → 組件數據更新
- 適用於需要用戶輸入和數據衕步的場景
常見的雙向綁定場景
錶單雙向綁定示例
實時預覽:
文本: {{textInput}}
數字: {{numberInput}}
多行文本: {{textareaInput}}
選擇: {{selectedOption}}
復選框狀態: {{isChecked ? '已勾選' : '未勾選'}}
註意事項
- 性能考慮:雙向綁定會創建數據監聽器,大量使用可能影響性能
- 數據一緻性:雙向綁定確保數據和視圖的一緻性,但要註意避免無限循環更新
- 初始值設置:確保綁定的數據有閤適的初始值,避免 undefined 顯示問題
- 事件衝突:避免在衕一元素上衕時使用雙向綁定和手動事件處理,以免造成衝突