10月27日
1. <van-form> 组件
Vant 的 <van-form> 组件在内部会根据每个 <van-field> 的 name 属性,
自动收集表单项的值,在提交时会生成一个 values 对象,类似这样:
{username: 'xxx',password: 'yyy'
}2. localStorage
localStorage 不会自动把对象变成字符串,它只会在存储时强制要求是字符串类型。
例子:
const userInfo = { name: '张三', age: 18 };
localStorage.setItem('userInfo', userInfo);
因为 userInfo 是一个对象,JS 会调用它的 toString() 方法,结果是:
"[object Object]"
存进去之后,你的 localStorage 实际变成了:
userInfo = "[object Object]"
这时候再取出来:
localStorage.getItem('userInfo') // "[object Object]"
取出来的userInfo就变成了"[object Object]"
原本的对象结构全没了。
正确做法
为了能在读取时还原为对象,就要:
localStorage.setItem('userInfo', JSON.stringify(userInfo));
这样存储的其实是:
'{"name":"张三","age":18}'
然后读取时用:
JSON.parse(localStorage.getItem('userInfo'));
又能得到:
{ name: "张三", age: 18 }3. reactive
reactive 不会强制保持原类型,它只是响应式代理。
数据被覆盖时,会以新值的类型为准。
const homeData = reactive({a: '',
})
这里a是字符串类型
homeData.a = 20;
a会变成number类型
