Esta página fue traducida automáticamente del portugués y puede contener errores. La versión en portugués es la canónica.
Viniendo de React Native
En RN describes la UI en JSX y el re-render ocurre cuando el estado cambia. En CrossFly la UI es código Java montado una vez, y tú mutas. Lee primero la filosofía.
Tabla de traducción
| React Native | CrossFly |
|---|---|
| componente funcional + JSX | subclase de Window/Component montada en onShow() (sin markup) |
useState / re-render |
campos + repaint() |
props |
argumentos de constructor (sin tabla de rutas) |
<View> / <Text> / <Image> |
Component / Label / ImageView |
<FlatList> |
VirtualListView |
flexbox (flex: 1) |
add(LAY_FILL, c) + VerticalLayout/HorizontalLayout |
StyleSheet |
ComponentStyle / Skin (ingap/outgap = padding/margen) |
react-navigation |
pila de Window (show() / hide()) |
useEffect / Promise / async |
Thread + Component.onUI(...) |
AsyncStorage |
sin equivalente → SQLite o archivos en Device.homeFolder |
Cómo era / cómo queda — lista
// React Native
function Lista({ itens }) {
return <FlatList data={itens}
renderItem={({ item }) => <Text>{item.nome}</Text>} />;
}
// CrossFly — props se vuelven argumentos del constructor; UI en Java
public class Lista extends Window {
private final List<Item> itens;
public Lista(List<Item> itens) { this.itens = itens; } // "props"
@Override public void onShow() throws Exception {
super.onShow();
setLayout(new VerticalLayout());
add(LAY_FILL, new VirtualListView(Relative.ofFont(3f), new DataAdapter() {
public int getCount() { return itens.size(); }
public Component createView() { return new Label(""); }
public void bindView(Component v, int i) { ((Label) v).setText(itens.get(i).nome); }
}));
}
}
Lo que más cambia
- Sin bridge JS y sin hot-reload — es Java compilado (en el escritorio el ciclo es rápido; ver plataformas).
props→ constructor: pasa los datos por lanew Tela(dados)y llama a.show().StyleSheet→ComponentStyle: padding/margen soningap/outgap, no propiedades de flex.
Véase también
¿Te resultó útil esta página?¡Gracias por tu opinión!