МТ
Size: a a a
МТ
AK
L
МТ
on:click={() => handleClick()}AK
on:click={() => handleClick()}AP
Б
Б
Б
Б
const Box = ({padding = 0, ...}) => {
return h({
diff: (context, state = {padding}) => {
if (padding !== state.padding) context.el.style.padding = `${state.padding = padding}px`;
...
})
}
Да чуть менее удобно чем в реакте но с другой стороны ты это пишешь один раз внутри атомарных компонентов а потом уже собираешь приложения из атомарных компонентов декларативно, примерно такconst Component = ({prop1, prop2}) => {
return Box({
width: prop1,
height: 500,
background: `#edeef0`,
border: `1px solid blue`,
padding: 20,
children: [
Box({
height: 30,
background: `gray`,
border: `1px solid gray`,
padding: 10,
}),
AnotherComponent({prop2})
]
});
};
И при этом работаешь с нативной системой дом-дерева без всяких оберток и сам выбираешь юзать свойства или аттрибуты (ну и доступны все возможные css-свойства без необходимости ждать поддержки чего-то в фреймворке)AP
const Box = ({padding = 0, ...}) => {
return h({
diff: (context, state = {padding}) => {
if (padding !== state.padding) context.el.style.padding = `${state.padding = padding}px`;
...
})
}
Да чуть менее удобно чем в реакте но с другой стороны ты это пишешь один раз внутри атомарных компонентов а потом уже собираешь приложения из атомарных компонентов декларативно, примерно такconst Component = ({prop1, prop2}) => {
return Box({
width: prop1,
height: 500,
background: `#edeef0`,
border: `1px solid blue`,
padding: 20,
children: [
Box({
height: 30,
background: `gray`,
border: `1px solid gray`,
padding: 10,
}),
AnotherComponent({prop2})
]
});
};
И при этом работаешь с нативной системой дом-дерева без всяких оберток и сам выбираешь юзать свойства или аттрибуты (ну и доступны все возможные css-свойства без необходимости ждать поддержки чего-то в фреймворке)AP
const Box = ({padding = 0, ...}) => {
return h({
diff: (context, state = {padding}) => {
if (padding !== state.padding) context.el.style.padding = `${state.padding = padding}px`;
...
})
}
Да чуть менее удобно чем в реакте но с другой стороны ты это пишешь один раз внутри атомарных компонентов а потом уже собираешь приложения из атомарных компонентов декларативно, примерно такconst Component = ({prop1, prop2}) => {
return Box({
width: prop1,
height: 500,
background: `#edeef0`,
border: `1px solid blue`,
padding: 20,
children: [
Box({
height: 30,
background: `gray`,
border: `1px solid gray`,
padding: 10,
}),
AnotherComponent({prop2})
]
});
};
И при этом работаешь с нативной системой дом-дерева без всяких оберток и сам выбираешь юзать свойства или аттрибуты (ну и доступны все возможные css-свойства без необходимости ждать поддержки чего-то в фреймворке)IF
АС
𝚋
L
bind:this?𝚋
bind:this?МТ
МТ
𝚋