重构完成component和user的封装