import { ref } from '@shined/reactive';
const store = create({
count: 0,
inputValue: 'Hello',
fileRef: ref({
file: null as File | null
}),
tableRef: ref({
tableEl: null as HTMLTableElement | null
})
});
// ✅ 你应该这样做,即只改变 ref 对象内部的属性,而不是更改 ref 对象本身
store.tableRef.tableEl = document.getElementById('table');
store.fileRef.file = new File([''], 'example.txt');
// ✅ 然后可以对内部非代理状态进行操作,读写等
store.tableRef.tableEl.addEventListener('click', () => {
console.log('table clicked');
});
store.fileRef.file.text().then(text => {
console.log(text);
});
// ❌ 不要更改 ref 对象本身,会导致意外的行为
store.tableRef = { tableEl: document.getElementById('table') };
store.fileRef = { file: new File([''], 'example.txt') };