Skip to content

Commit 6c73ff0

Browse files
committed
doc:添加新增页面文档
1 parent 5334f82 commit 6c73ff0

File tree

5 files changed

+114
-50
lines changed

5 files changed

+114
-50
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# 新增页面
2+
3+
这里的『页面』指配置了路由,能够通过链接直接访问的模块。
4+
5+
## 手动创建
6+
7+
在 src / pages 下创建新的 js 文件。 如果有多个相关页面,您可以创建一个新文件夹来放置相关文件
8+
```bash
9+
src
10+
models
11+
pages
12+
+ NewPage
13+
+ index.js
14+
...
15+
...
16+
package.json
17+
```
18+
19+
为了更好的演示,我们初始化NewPage/index.js的内容如下:
20+
```jsx
21+
import React, {Component} from 'react';
22+
import {View, Text, SafeAreaView} from 'react-native';
23+
24+
export default class MyNewPage extends Component {
25+
render() {
26+
return (
27+
<SafeAreaView>
28+
<View>
29+
<Text>我的</Text>
30+
</View>
31+
</SafeAreaView>
32+
);
33+
}
34+
}
35+
```
36+
将文件加入菜单和路由
37+
38+
在 src / routes 下homeTab.js中使用 component 配置我们页面到路由中
39+
```jsx
40+
import MyNewPage from '../pages/NewPage';
41+
42+
export const stackPageData = [
43+
{
44+
name: 'MyNewPage',
45+
component: MyNewPage,
46+
options: {
47+
title: '我的',
48+
},
49+
},
50+
];
51+
```
52+
路由配置完成后,访问页面即可看到效果,如需要配置 `title``tabBarIcon``header`等更多设置可以在这里找到[React Navigation](https://reactnavigation.org/docs/stack-navigator/)
53+
54+
## 新增 api
55+
56+
在 src / services 文件夹下创建本模块对应的 api 服务
57+
58+
## 新增组件
59+
60+
个人写项目的习惯,在全局的 @/components 只会写一些全局的组件,如各种搜索组件,封装的日期组件等等能被公用的组件。每个页面或者模块特定的业务组件则会写在当前 pages 下面。
61+
62+
## 新增样式
63+
64+
页面的样式和组件是一个道理,全局的 @/styles 放置一下全局公用的样式,每一个页面的样式就写在当前 pages 下面
65+
```jsx
66+
const styles = StyleSheet.create({
67+
content: {
68+
marginTop: 50,
69+
},
70+
btnStyle: {
71+
borderRadius: 4,
72+
margin: 16,
73+
},
74+
})
75+
```
76+
具体请参照官方文档[样式](https://reactnative.cn/docs/style)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import Preview from 'src/component/Preview';
2+
import md from './README.md';
3+
4+
const transformImageUri = (url: string) => {
5+
const reqImage = (require as any).context!('./', true, /\.(png|gif|jpg|svg)$/);
6+
const urlAddr = reqImage(url);
7+
return urlAddr;
8+
};
9+
10+
const DEMO = () => (
11+
<Preview
12+
{...md}
13+
transformImageUri={transformImageUri}
14+
path="website/src/pages/docs/react-native-template/new-page/README.md"
15+
/>
16+
);
17+
18+
export default DEMO;

website/src/pages/docs/react-native-template/quickstart/README.md

Lines changed: 15 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,20 @@
22

33
一个基于 [uiw/react-native](https://github.com/uiwjs/react-native-uiw) 的 React Native 模板。
44

5+
6+
## 特性
7+
8+
该模板包括以下内容:
9+
10+
1. 直接优雅地使用 [React Native CLI](https://github.com/react-native-community/cli)
11+
1. 支持 [React Native](https://github.com/facebook/react-native) 0.60 (现在有了 Hooks 🙌)
12+
1. 易于使用和理解的文件夹结构,让您尽快启动和运行
13+
1. [@uiw/react-native](https://github.com/uiwjs/react-native-uiw) 组件框架和主题
14+
1. 使用 [react-navigation](https://github.com/react-navigation/react-navigation) 来路由和导航您的 React Native 应用程序
15+
1. 支持 [Redux](https://github.com/reduxjs/redux) (以 [@rematch](https://github.com/rematch/rematch) 为例)
16+
1. [ESLint](https://github.com/eslint/eslint), 和 [Prettier](https://github.com/prettier/prettier) 开箱即用
17+
1. 使用 [mocker-api](https://github.com/jaywcjlove/mocker-api) 创建模拟的 REST API
18+
519
## 安装与使用
620

721
🚧 此模板仅适用于新的 CLI。 此模板适用于 >= 0.61 的 React Native 版本。 它没有用以前的版本进行测试。
@@ -108,53 +122,4 @@ npm run ios
108122
├── .eslintrc # eslint configuration
109123
├── index.js # app entry file
110124
└── package.json # This document is all you need to know about what’s required in your package.json file.
111-
```
112-
## 新增页面
113-
114-
在 src / pages 下创建新的 js 文件。 如果有多个相关页面,您可以创建一个新文件夹来放置相关文件
115-
```bash
116-
src
117-
models
118-
pages
119-
+ NewPage
120-
+ index.js
121-
...
122-
...
123-
package.json
124-
```
125-
126-
为了更好的演示,我们初始化NewPage/index.js的内容如下:
127-
```jsx
128-
import React, {Component} from 'react';
129-
import {View, Text, SafeAreaView} from 'react-native';
130-
131-
export default class MyNewPage extends Component {
132-
render() {
133-
return (
134-
<SafeAreaView>
135-
<View>
136-
<Text>我的</Text>
137-
</View>
138-
</SafeAreaView>
139-
);
140-
}
141-
}
142-
```
143-
将文件加入菜单和路由
144-
在 src / routes 下homeTab.js中使用 component 配置我们页面到路由中
145-
```jsx
146-
import MyNewPage from '../pages/NewPage';
147-
148-
export const stackPageData = [
149-
{
150-
name: 'MyNewPage',
151-
component: MyNewPage,
152-
options: {
153-
title: '我的',
154-
},
155-
},
156-
];
157-
```
158-
路由配置完成后,访问页面即可看到效果,如需要配置 `title``tabBarIcon``header`等更多设置可以在这里找到[React Navigation](https://reactnavigation.org/docs/stack-navigator/)
159-
160-
如此回到之前新建的 NewPage.js,可以开始写业务代码了!
125+
```

website/src/routes/menus.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ export const docsMenus: MenuData[] = [
8888
{ path: '/docs/unpack/android', name: 'Android(Mac) 打包' },
8989
{ divider: true, name: 'React Native Template' },
9090
{ path: '/docs/react-native-template/quickstart', name: '快速开始' },
91+
{ path: '/docs/react-native-template/new-page', name: '新增页面' },
9192
{ path: '/docs/react-native-template/mock-data', name: 'Mock 数据' },
9293
{ divider: true, name: '发布应用商店' },
9394
{ path: '/docs/app-store/ios', name: '发布 iOS 应用商店' },

website/src/routes/router.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ export const routeData = [
6565
path: '/docs/react-native-template/quickstart',
6666
component: lazy(() => import('../pages/docs/react-native-template/quickstart')),
6767
},
68+
{
69+
path: '/docs/react-native-template/new-page',
70+
component: lazy(() => import('../pages/docs/react-native-template/new-page')),
71+
},
6872
{
6973
path: '/docs/react-native-template/mock-data',
7074
component: lazy(() => import('../pages/docs/react-native-template/mock-data')),

0 commit comments

Comments
 (0)