ReactAnt Design 5.0 构建通用后台管理系统界面
Posted EvilChan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ReactAnt Design 5.0 构建通用后台管理系统界面相关的知识,希望对你有一定的参考价值。
涉及依赖
- react-router-dom
src/router/index.tsx
import IndexRouteObject, NonIndexRouteObject from \'react-router-dom\'
// 重写react-router-dom的RouteObject
export type RouteObject = CustomIndexRouteObject | CustomNonIndexRouteObject
// 添加路由元信息meta, 路由标题,图标等,都可以放在这
interface CustomIndexRouteObject extends IndexRouteObject
meta?: Record<string, unknown>
// 添加路由元信息meta, 路由标题,图标等,都可以放在这
interface CustomNonIndexRouteObject extends NonIndexRouteObject
meta?: Record<string, unknown>
children?: RouteObject[]
const routes: RouteObject[] = [
path: \'/\',
element: <div>首页</div>,
meta:
title: \'首页\',
,
,
path: \'system\',
element: <div>系统管理</div>,
meta:
title: \'系统管理\',
,
,
]
export default routes
App.tsx
import BrowserRouter, Link, Outlet, Route, Routes from \'react-router-dom\'
import routes, RouteObject from \'./router\'
function App()
// 路由对象转标签
const convert = (route: RouteObject) =>
if (Array.isArray(route.children))
return (
<Route key=route.path path=route.path element=route.element>
route.children.map((item) => convert(item))
</Route>
)
else
return (
<Route key=route.path path=route.path element=route.element />
)
return (
<BrowserRouter>
<Routes>
<Route
path="/"
element=
<div>
<Link to=\'/\'>首页</Link>
<Link to=\'/system\'>系统管理</Link>
<Outlet />
</div>
>
routes.map((route) => convert(route))
</Route>
</Routes>
</BrowserRouter>
)
export default App
现在在界面应该就能看到首页和系统管理的文本链接,点击后能显示对应的内容,浏览器并无跳转。后期会联合Antd Menu的属性对路由对象进行改进。
Material Design 向后兼容性
【中文标题】Material Design 向后兼容性【英文标题】:Material Design backward compatibility 【发布时间】:2014-08-18 03:52:49 【问题描述】:从 Android 开发者页面上提供的示例中,我看到新视图,如 RecyclerView
,向后兼容 (android.support.v7.widget.RecyclerView
)。
Material Design 中引入的所有新东西都向后兼容(到哪个版本)?
【问题讨论】:
还没有.. 它们包含在支持库中,但目前除了 L 之外什么都不能使用。 Link to a discussion about this. 【参考方案1】:将此答案更新为 Lollipop 操作系统已正式发布支持库,您可以在项目中使用这些支持库来提供与旧版本的兼容性。
支持库: v7 appcompat library
这个库增加了对 Action Bar 用户界面设计模式的支持。该库包括对材料设计用户界面实现的支持。
如果您使用的是 Android Studio,那么您只需要包含以下依赖项标识符:
com.android.support:appcompat-v7:21.0.+
【讨论】:
那么您将如何确保 API 兼容性?取自您提供的文档链接:“为了保持与早期版本的 Android 的兼容性,请在调用这些 API 之前在运行时检查系统版本。”从您的角度来看,这是否意味着在调用 API 之前以编程方式进行检查?听起来像是两次(或更多)的工作,以确保在多个操作系统中的流畅体验...... @Jean-PhilippeMurray 是的,您需要单独的资源目录以及运行时检查if (Build.VERSION.SDK_INT >= 21)
@Jean-PhilippeMurray 当然,您必须注意 API 级别的差异。这就是 Android 开发的一半乐趣。新主题只会增添更多乐趣和刺激。等不及了!
^ 我不知道@GlennBech 是在挑衅还是在认真;)一点也不好玩。 :p
自 Lollipop 发布以来,此答案已被弃用。【参考方案2】:
从 Android 2.2 (API 8) 到现在的 5.0 (API 21) 的材料设计
这是你需要的:
-
工具栏
小部件的材料设计库(按钮、复选框等)
1。工具栏
只要得到这个想法,你就可以开始了。
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_
android:layout_
android:background="?attr/colorPrimaryDark"/>
设置指南:http://antonioleiva.com/material-design-everywhere/
示例来源:https://github.com/antoniolg/MaterialEverywhere
要使 Toolbar 工作在较低的 API 11 中,请使用 Theme.AppCompat.Light.NoActionBar(将 windowActionBar 设置为 false em>)
<style name="NoActionBarTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
</style>
2。材料设计库
这里是 Material Design Library,用于漂亮的按钮等。
指南、代码、示例 - https://github.com/navasmdc/MaterialDesignLibrary
指导如何将库添加到 Android Studio 1.0 - How do I import material design library to Android Studio?
.
编码愉快 ;)
【讨论】:
这是一个更好更有用的答案;不确定当更好的答案出现时是否可以更改已接受的答案。【参考方案3】:官方Material Design
倒退到v7 appcompat Support Library。
【讨论】:
【参考方案4】:只是为了补充 Paresh 的答案,并非 Material Design 的所有功能都在旧版本中可用。自定义主题和活动转换仅适用于 API > 21,但正如其他人提到的,支持库中提供了一些功能。
https://developer.android.com/training/material/compatibility.html
【讨论】:
【参考方案5】:API 从版本 22 开始包含。您需要将此依赖项包含到 gradle 依赖项中:
com.android.support:design:22.2.0
【讨论】:
【参考方案6】:I/O 2015 中引入的 Google 设计支持库
http://android-developers.blogspot.gr/2015/05/android-design-support-library.html
你会在那里找到很多材料设计的好东西。
导航视图 小吃店 浮动操作按钮 CoordinatorLayout、运动和滚动(最好的部分包括视差效果和固定工具栏)还有更多...
【讨论】:
以上是关于ReactAnt Design 5.0 构建通用后台管理系统界面的主要内容,如果未能解决你的问题,请参考以下文章
Vue笔记-Ant Design Vue构建前端连接后端WebSocket
使用 DrawerLayout 实现 Material Design风格的侧滑