安装必要的工具
确保你的开发环境已经准备好。
-
安装 Git
- 确保你已经安装了 Git,可以使用以下命令:
curl -fsSL https://raw.githubusercontent.com/git/git/HEAD/contrib/git-extras/v2/sh/supported.sh | sh source ~/.bashrc git --version
- Git 未安装,可以按照上述命令进行安装。
- 确保你已经安装了 Git,可以使用以下命令:
-
安装 Node.js 和 npm
- 下载并安装最新版本的 Node.js(建议 v16.8. 或更高版本):
wget https://nodejs.org/dist/v16.8./node-v16.8.-linux-x64.tar.gz tar -xzf node-v16.8.-linux-x64.tar.gz cd node-v16.8.-linux-x64 ./node-wallet install
- 检查安装是否成功:
node -v npm -v
- 确保 npm 和 npx 可以执行:
npm install -g npx
- 下载并安装最新版本的 Node.js(建议 v16.8. 或更高版本):
初始化项目
创建一个新的项目目录,并初始化项目结构。
-
进入项目目录:
mkdir my-nekoray-project cd my-nekoray-project
-
初始化 npm 项目:
npm init -y
这会生成一个
package.json文件,内容如下:{ "name": "my-nekoray-project", "version": "1..", "description": "NekoRay Project", "scripts": { "dev": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, "dependencies": { "nekoray": "^latest", "react": "^latest", "react-dom": "^latest", "react-router-dom": "^latest", "react-scripts": "latest", "redux": "^latest", "react-redux": "^latest", "react-thunk": "^latest" }, "eslintConfig": { "extends": [ "react-app" ] } } -
安装 NekoRay 和其他依赖:
npm install nekoray@latest
启动开发服务器
- 运行开发服务器:
npm run dev
- 打开浏览器,访问
http://localhost:300,你应该看到 NekoRay 的欢迎页面。
创建和使用组件
-
创建 Hello World 组件
mkdir components cd components
创建
HelloWorld.js:import React from 'react'; import { useState } from 'react'; function HelloWorld() { const [count, setCount] = useState(); return ( <div> <h1>Hello World!</h1> <p>Count: {count}</p> <button onClick={() => setCount(count + 1)}>Increment</button> </div> ); } export default HelloWorld; -
在主页面使用组件
-
打开
src/App.js,并修改其内容:import React from 'react'; import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom'; import HelloWorld from './components/HelloWorld'; function App() { return ( <Router> <Routes> <Route path="/" element={<HelloWorld />} /> <Route path="/about" element={<div>About</div>} /> <Route path="/contact" element={<div>Contact</div>} /> </Routes> </Router> ); } export default App; -
保存文件后,运行
npm run dev,访问http://localhost:300应该会显示“Hello World”。
-
配置定制主题
-
创建主题文件:
mkdir src cd src
创建
theme.js:export const theme = { colors: { primary: '#2196F3', secondary: '#FF4081', background: '#F5F5F5', text: '#212121', success: '#4CAF50', danger: '#f44336', warning: '#FFC107', info: '#1976D2', tertiary: '#9C27B' }, breakpoints: { mobile: '768px', tablet: '768px', desktop: '1024px' } }; -
在
App.js中应用主题:import { theme } from './theme'; import { useTheme } from 'nekoray-theme'; function App() { const currentTheme = useTheme(); return ( <div style={{ background: currentTheme.colors.background }}> <h1>My NekoRay App</h1> <BrowserRouter> <Routes> <Route path="/" element={<HelloWorld />} /> {/* 其他路由 */} </Routes> </BrowserRouter> </div> ); }
配置路由
-
安装
react-router-dom:npm install react-router-dom
-
创建路由结构:
mkdir routes cd routes
-
创建
About.js和Contact.js:import React from 'react'; import { useLocation } from 'react-router-dom'; function About() { const location = useLocation(); return ( <div> <h1>Page: {location.pathname}</h1> <p>About Page</p> </div> ); } export default About; import React from 'react'; import { useLocation } from 'react-router-dom'; function Contact() { const location = useLocation(); return ( <div> <h1>Page: {location.pathname}</h1> <p>Contact Page</p> </div> ); } export default Contact;
-
-
修改
App.js:import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom'; import About from './routes/About'; import Contact from './routes/Contact'; function App() { return ( <Router> <Routes> <Route path="/" element={<HelloWorld />} /> <Route path="/about" element={<About />} /> <Route path="/contact" element={<Contact />} /> </Routes> </Router> ); }
配置状态管理( Redux)
-
安装 Redux 和相关工具:
npm install redux react-redux react-thunk
-
创建 Redux 配置文件:
mkdir src cd src
创建
reducer.js:import { createSlice } from 'redux'; const slice = createSlice({ name: 'counter', initial: { value: 0 }, reducers: { increment: (state) => state + 1, decrement: (state) => state - 1 } }); export const store = slice.store; export const reducer = slice.reducer; -
修改
App.js:import { Provider } from 'react-redux'; import { store } from './src/reducer'; import { useState } from 'react'; function App() { return ( <Provider store={store}> <BrowserRouter> <Routes> <Route path="/" element={<HelloWorld />} /> {/* 其他路由 */} </Routes> </BrowserRouter> </Provider> ); } -
创建状态管理组件:
mkdir components cd components
创建
Counter.js:import React from 'react'; import { useSelector, useDispatch } from 'react-redux'; import { increment, decrement } from '../src/reducer'; function Counter() { const count = useSelector(state => state.counter.value); const dispatch = useDispatch(); return ( <div> <h2>Count: {count}</h2> <button onClick={() => dispatch(increment())}>Increment</button> <button onClick={() => dispatch(decrement())}>Decrement</button> </div> ); } export default Counter; -
在
App.js中导入并使用:import Counter from './components/Counter';









