面试题答案
一键面试- 实现思路:
- 在Solid.js的路由配置中,定义带动态参数的路由路径,如
/user/:id
。 - 当导航到该路由时,通过路由相关的方法将动态参数传递给目标组件
UserDetails
。 - 在
UserDetails
组件内,使用Solid.js的响应式机制获取并处理该参数,当参数变化时,组件能自动更新。
- 在Solid.js的路由配置中,定义带动态参数的路由路径,如
- 代码示例:
- 路由配置:
假设使用
@solidjs/router
库,示例代码如下:
- 路由配置:
假设使用
import { Router, Routes, Route } from '@solidjs/router';
import UserDetails from './UserDetails';
function App() {
return (
<Router>
<Routes>
<Route path="/user/:id" component={UserDetails}></Route>
</Routes>
</Router>
);
}
export default App;
- UserDetails组件:
import { createEffect, createSignal } from 'solid-js';
import { useParams } from '@solidjs/router';
function UserDetails() {
const { id } = useParams();
const [userId, setUserId] = createSignal(id);
createEffect(() => {
setUserId(id());
// 在这里可以处理参数变化时的逻辑,例如发起新的API请求
console.log('用户ID已更新:', userId());
});
return (
<div>
<p>用户详情页面,用户ID: {userId()}</p>
</div>
);
}
export default UserDetails;
在上述代码中,useParams
函数从路由中获取动态参数id
,createSignal
创建了一个响应式的userId
,createEffect
会在id
变化时更新userId
并执行相应的副作用逻辑,从而实现组件的响应式更新。