【Ant Design Pro】使用ant design pro做为你的开发模板(二)新增一个页面与如何添加国际化

简介: 【Ant Design Pro】使用ant design pro做为你的开发模板(二)新增一个页面与如何添加国际化

接上章,我们到第一章结束已经成功的拉取了项目并运行了项目。


这时候我们会说,如果我们要开始二次开发,那么我们需要改什么呢?


一:如何新增一个页面


1. 新增页面与我们往常开发Vue 或者 React 类似,我们需要在文件夹目录的src/pages/下新建一个页面的文件夹。


例如:

50683709903946119ff6dee6ef8a85f0.png


2. 我在src下的pages文件夹中新建了一个页面文件夹home,并且在文件夹中建了新的tsx以及less文件。用来代表当前页面的页面内容文件。并且我给这个页面写入了一个内容,它会显示一行文字:这里是Home页面。



14496708dd894b7f8ebb489132b9f956.png

3. 我们也可以引入新建的less文件。Ant Design Pro 默认使用的是Css Modules。我们可以在页面中这样去使用。


我们在less文件中写入了一个样式。


并且我们在Home页面tsx中进行引入,然后以modules的方式将它赋值给div的classname

3158cc11e48c416dba9c2d66781be740.png


关于CssModule 的官方解释是:


所有的 class 的名称和动画的名称默认属于本地作用域的 CSS 文件。所以 CSS Modules 不是一个官方的规范,也不是浏览器的一种机制,它是一种构建步骤中的一个进程。(构建通常需要 webpack 或者 browserify 的帮助)。通过构建工具的帮助,可以将 class 的名字或者选择器的名字作用域化。(类似命名空间化)。


通过构建工具来使指定class达到scope的过程。


CssModules的优势则是:


  • 解决全局命名冲突问题 css modules只关心组件本身 命名唯一
  • 模块化 可以使用composes来引入自身模块中的样式以及另一个模块的样式
  • 解决嵌套层次过深的问题 使用扁平化的类名


4. 页面新建完成后,我们则需要开始配置让页面展示出来,也就是配置页面路由。

我们打开项目目录的config/routers.ts文件。可以看到这里就是我们的项目路由地址。

5381e8c0160c488fb048b32b0577f3b1.png

我们根据下方    list.table-list  的table路由配置一个页面,看看是否能够生效呢?


2b93ee28ad124dcf8b0e5328d4606942.png

答案是,生效了。当我们保存路由地址,回到页面进行刷新后,发现左侧菜单出来了一个菜单


37c462636d5f41dfbe2ae0d7a2bca0a8.png

当我们点击后,会发现路由也跳转到了我们刚才写入的页面。

6f372b616cb64dc28279567491c0df29.png


至此我们的新增页面就到此结束了。伙伴们快看看,你们的跟我的是否有所不一致呢?


二:如何使用国际化?


不知道有没有细心的伙伴注意到,整个config/routers.ts 中,没有任何一个页面名字叫 查询表格

那页面上的 查询表格 这个name是怎么出来的呢?


a98665e4f9514945a5a7bec3d2e31812.png


官方是这样说的:


路由配置完成后,访问页面即可看到效果,如果需要在菜单中显示,需要配置 name,icon,hideChildrenInMenu等来辅助生成菜单。其实name为配置菜单的name,如果配置了国际化后,name则为国际化的key。


所以,在上述路由中,name 为: list.table-list。 其实它是国际化的key。也就是说,这个路由是开启了国际化的。


并且,我们在页面上的右上角使用国际化切换语言为英文后,其它菜单都变了,但就是我们新增的 home页面没有变化。


c8b02f85eed648ae834cd804ffc5a395.png

e5795f41336c45238066913a5e7a4186.png

没有改变为英文。


其实,这里就牵扯到我们今天要说的第二个内容,国际化。


关于 Ant Design Pro的国际化,想看官方文档的伙伴可以直接访问官方文档进行查看哦


【国际化 - Ant Design Pro】


不详查看官方文档的,那就跟我一步一步的往下走。我们来给我们的Home 页面菜单添加上国际化(多语言切换)。


1. 首先我们需要打开 config/config.ts 文件,我们需要配置国际化。


1cea7c4c4bf647969cd6c562a89a44fe.png

2. 其次,我们需要在src/locales中增加相应的 国际化key。例如:

我们在locales的zh-CN (中文)的menu.ts,以及 en-US(英文)的menu.ts中增加我们的Home页面国际化key与值。

e5a1c9ef8b06496a8c80fb2f21c63a9b.png


如: zh-CN(中文中添加)home页面的key : menu.list.home。以及 home对应的中文值:我的主页

c56917fc3bc84ca5a9114679b4e4b8e3.png

en-US(英文中添加)home页面的key:menu.list.home。以及home对应英文的值:My Home Pages

f736558bff1e4eb8a40700f56ba51691.png

一定要注意的是,如果你想要修改哪一部分的显示语言为国际化,那么在对应国际化中的key一定要是相同的。


例如: 下述中文menu的key 与英文menu的key 需要是一样的。



7da55c45d8bb476691749ede0e7eae51.png

8366d7fc43c64aee85e64d31c0fb6a3e.png


3 下来我们只需要打开新增页面时候的config/routers.ts 这个文件,修改我们之前的 home页面路由名字为我们的 国际化key:menu.list.home 即可。


98c8d2dbc028433b89abbcb9cbf609bd.png修改为176c729b5843429d8c24a234b1a8c89a.png


(此处不用与menu.ts中一样使用全部的key: menu.list.home)因为这里已经是封装过的,menu会自动拼接,所以我们只需要省略menu即可。在这里直接使用 list.home即可


4. 我们保存刷新下页面进行查看,因为在config中默认我们是中文,所以home页面菜单名字则会改成我们在zh-CN的menu.ts中设置的值为 我的主页。


ad299420a7b24cc6bda84bb793c31ae7.png


当我们切换成英文后。

b895f991b5244f939855dc6780e3404a.png


菜单则会显示成 我们在 en-US 的menu.ts 中定义好的 值: My Home Pages


到此菜单的国际化就算是修改完了。


但是这里会有伙伴想问,那我如果要修改页面的值为国际化我应该怎么做呢?


第三:如果在页面上使用国际化展示内容


此处我们以welcome页面的 欢迎使用 为例:(中英文切换)


d1160fe18b8d4139b24d02a85362b4b0.png


1.  我们需要与菜单配置国际化时候类似,在src/locales 下的文件夹中,找到我们要切换的英文文件夹—— en-US/pages.ts 这个 文件。这个文件就是用来表示,页面上内容的英文显示的。

我们定义一个统一的国际化的key与值,如:


f52f44abe5ce48c980b45cc41ed166a5.png

我们起的key叫: pages.welcome.link。

英文的值为 Welcome。

同样。我们在对应的中文文件夹 —— zh-CN/pages.ts 这个文件中,新增中文译文的key与值。

b0df2dd38bc64b22bfa7a30447e0f1ce.png

key与英文的key保持一致: pages.welcome.link.


值为: 欢迎使用。


2. 下来我们则需要进入到 welcome 这个页面中,使用 umi 自带的国际化组件(默认自带)FormattedMessage 来直接使用即可。FormattedMessage 组件的id 就是你定义好的 国际化的key。


例如:

563b630c36dd457da0c0a391a2fdf597.png

3. 我们保存下内容。进入页面刷新后进行切换。

c6325c668976477fa2f42aa9943ce7f8.png


会发现已经改变。


四: 使用方法切换国际化


同样。在页面除过直接使用  FormattedMessage 组件外,我们也可以使用方法进行国际化切换。

1. 我们需要从 umi 中引入useIntl 这个钩子函数


import { useIntl } from 'umi';


2. 其次,实例化这个钩子函数。


const intl = useIntl();


3. 在页面/方法 中可以直接使用.

f79b7a22347c41d6ad3defd71595f30c.png

与 FormattedMessage  组件相比,它可以存在与方法中。


同样,我们保存下,去页面刷新试试。

ea7595c68076468b94006cdaf9a3778f.png

99e080bd98be4f9db153a2f42e963f22.png

显示依旧正确。

这个就是使用 Ant Design Pro的国际化。

最后,笔者说一句,笔者也是从官网文档学习过来的。不喜勿喷。

目录
相关文章
|
前端开发 JavaScript
【Ant Design Pro】使用ant design pro做为你的开发模板(一)拉取项目
【Ant Design Pro】使用ant design pro做为你的开发模板(一)拉取项目
1319 0
【Ant Design Pro】使用ant design pro做为你的开发模板(一)拉取项目
|
开发工具 git
【Ant Design Pro】使用ant design pro做为你的开发模板(五)去除无效代码,生成一个清晰的开发模板
【Ant Design Pro】使用ant design pro做为你的开发模板(五)去除无效代码,生成一个清晰的开发模板
744 0
【Ant Design Pro】使用ant design pro做为你的开发模板(五)去除无效代码,生成一个清晰的开发模板
|
前端开发 JavaScript Java
【Ant Design Pro】使用ant design pro做为你的开发模板(完结篇)上线部署项目
【Ant Design Pro】使用ant design pro做为你的开发模板(完结篇)上线部署项目
848 0
【Ant Design Pro】使用ant design pro做为你的开发模板(完结篇)上线部署项目
|
缓存 JavaScript 安全
【Ant Design Pro】使用ant design pro做为你的开发模板(四) 联调正式后台接口与运行时全局配置
【Ant Design Pro】使用ant design pro做为你的开发模板(四) 联调正式后台接口与运行时全局配置
1433 0
【Ant Design Pro】使用ant design pro做为你的开发模板(四) 联调正式后台接口与运行时全局配置
|
API
【Ant Design Pro】使用ant design pro做为你的开发模板(九)开发第一个完整的后台页面(二)
【Ant Design Pro】使用ant design pro做为你的开发模板(九)开发第一个完整的后台页面(二)
873 0
【Ant Design Pro】使用ant design pro做为你的开发模板(九)开发第一个完整的后台页面(二)
Ant Design pro删除模块笔记(二)
Ant Design pro删除模块笔记(二)
91 0
|
前端开发 JavaScript 安全
【Ant Design Pro】使用ant design pro做为你的开发模板 OpenAPI,快速管理你的请求接口。
前言 >转载好文,作者:[赵小左](https://blog.csdn.net/qq_31281245/article/details/126783707)
【Ant Design Pro】使用ant design pro做为你的开发模板 OpenAPI,快速管理你的请求接口。
Ant Design Pro:页面结构规范
Ant Design Pro:页面结构规范
121 0
Ant Design Pro新增页面步骤
Ant Design Pro新增页面步骤
283 0
Ant Design Pro 修改主题设置
Ant Design Pro 修改主题设置
347 0