View
Cái cây, và những gì SwiftUI giữ lại của nó
Một view là một bản mô tả, còn body là công thức để tạo ra thêm bản mô tả. Không có gì trong câu
đó là một đối tượng có vòng đời, và đó chính là vấn đề: một framework phải giữ vị trí cuộn, vùng chữ
đang chọn và animation đang chạy ở đâu đó, mà nó không thể giữ chúng trong một struct sẽ bị vứt đi
trước khung hình kế tiếp.
Ba chương ở đây nói về cách SwiftUI bắc cầu qua khoảng trống ấy, theo đúng thứ tự khoảng trống rộng ra.
Ghép lại thay vì cấu hình nói về hình dạng cái cây bạn dựng. UIKit đưa cho bạn một đối tượng với năm mươi thuộc tính; SwiftUI đưa cho bạn một kiểu nhỏ rồi mong bạn bọc nó trong một kiểu khác. Chương này nói về việc vì sao đánh đổi như vậy là đáng, và chỗ nào nó thôi có lãi.
Danh tính và vòng đời là chương quan trọng, và nếu bạn chỉ đọc đúng một chương của cuốn sách này
thì hãy đọc chương đó. Danh tính là cách SwiftUI quyết định rằng view nó đang nhìn lúc này vẫn là
view ấy mà nó đã thấy ở khung hình trước — thứ quyết định @State có sống sót không, một thay đổi
sẽ chạy animation hay cắt phụt, và một dòng trong List được dùng lại hay dựng lại.
Modifier là lớp bọc suy ra từ cả hai chương trên. .padding() không đặt thuộc tính lên bất cứ
thứ gì; nó trả về một view mới chứa view cũ bên trong. Một khi điều đó vỡ ra, thứ tự modifier thôi
là một quy tắc phải học thuộc và trở thành thứ bạn tự suy ra được.
Hãy đọc đúng thứ tự. Danh tính không đọc nổi nếu chưa có cái cây, còn modifier là một câu đố nếu chưa có danh tính.