npm create vite@latest react-jike-mobile -- --template react-ts
npm install --save antd-mobile
import { Button } from 'antd-mobile'
function App() {
return (
<>
<Button>click me </Button>
</>
)
}
export default App
const List = () => {
return <div>this is List</div>
}
export default List
const Detail = () => {
return <div>this is Detail</div>
}
export default Detail
import { createBrowserRouter } from 'react-router-dom'
import List from '../pages/List'
import Detail from '../pages/Detail'
const router = createBrowserRouter([
{
path: '/',
element: <List />,
},
{
path: '/detail',
element: <Detail />,
},
])
export default router
import ReactDOM from 'react-dom/client'
import { RouterProvider } from 'react-router-dom'
import router from './router/index.tsx'
ReactDOM.createRoot(document.getElementById('root')!).render(
<RouterProvider router={router} />
)
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import path from 'path'
export default defineConfig({
plugins: [react()],
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
},
},
})
{
"baseUrl": ".",
"paths": {
"@/*": [
"src/*"
]
},
}
import axios from 'axios'
const requestInstance = axios.create({
baseURL: 'http://geek.itheima.net/v1_0',
timeout: 5000,
})
requestInstance.interceptors.request.use(
(config) => {
return config
},
(error) => {
return Promise.reject(error)
}
)
requestInstance.interceptors.response.use(
(response) => {
return response
},
(error) => {
return Promise.reject(error)
}
)
export default requestInstance
import requestInstance from './http'
export { requestInstance as http }
获取-所有频道列表 - 黑马前端open in new window
export type ResType<T> = {
message: string
data: T
}
import { http } from '@/utils'
import type { ResType } from './shared'
type ChannelRes = {
channels: { id: number; name: string }[]
}
export function fetchChannelAPI() {
return http.request<ResType<ChannelRes>>({
url: '/channels',
})
}
fetchChannelAPI().then((res) => {
console.log(res.data.data.channels)
})