import { Fragment, render, mount, Renew, ref, mountCallback, updateCallback, } from 'lithent'; import { store } from 'lithent/helper'; const assignGlobalData = store({ value: 0, item: 'jjj' }); const Custom2 = mount<{ k: number; handle3: () => void }>( (r, _props, children) => { const globalData = assignGlobalData(r); const data = store({ v: 1 })(r); const gdataUpdate = () => { console.log('gdataUpdate'); globalData.value += 1; }; const toggleItem = () => { globalData.item = globalData.item === 'kkk' ? 'jjj' : 'kkk'; }; const handleMounted = () => { console.log('CUSTOM2 MOUNTED'); }; const handleUnmount = () => { console.log('CUSTOM2 UNMOUNT'); }; const handleUpdated = () => { console.log('CUSTOM2 UPDATED --'); }; const handleInputChane = (event: Event) => { data.v = Number((event.target as HTMLInputElement).value); }; mountCallback(() => { handleMounted(); return handleUnmount; }); updateCallback( () => handleUpdated, () => [globalData.value] ); return props => (
{props.k}-0--------------{globalData.item}-{globalData.value}
0{children}0
); } ); const useJw = (r: Renew) => { const data = store({ k: 7, j: 1 })(r); const data2 = store({ k: 1 })(r); const handle = () => { data.k += 1; // data.j += 1; }; const handle2 = () => { data2.k += 1; }; return { data, data2, handle, handle2 }; }; const CustomElement = mount(r => { const { data, data2, handle, handle2 } = useJw(r); const data3 = store({ k: 1 })(r); const handle3 = () => { console.log('action handle 3'); data3.k += 1; }; // const hadleRef = makeRef({ handle3 }); const domRef = ref(null); const handleUpdatedDataK = () => { console.log('domRef', domRef); console.log('updated k', data); data3.k += 10; }; const handleUpdatedData2K = () => { console.log('updated 2k', data2); }; updateCallback(handleUpdatedDataK, () => [data.k]); updateCallback(handleUpdatedData2K, () => [data2.k]); return () => (
{data.k % 2 === 0 ? m : 'jinwoo'} {data.k % 2 === 1 ? ( 1 2 3 ) : null}
data.k: {data.k}
data.j: {data.j}
data2.k: {data2.k}
data3.k: {data3.k}


); }); const Component = mount(() => { return () => (
3
3
); }); render(, document.getElementById('root'));