当前位置: 首页 > news >正文

Php做网站创业网页设计基础知识点

Php做网站创业,网页设计基础知识点,wordpress 404,目前个人网站做地最好是哪几家接着上篇的内容继续。规划界面布局。界面分为三个部分#xff0c;左边为菜单部分#xff0c;右边上部有个 80 px 高度左右的功能区#xff0c;下面是主内容区。 依据这个设计#xff0c;我们进行下面的步骤#xff1a; 在 SMenu项目中创建一个目录#xff1a; SLayout, …接着上篇的内容继续。规划界面布局。界面分为三个部分左边为菜单部分右边上部有个 80 px 高度左右的功能区下面是主内容区。 依据这个设计我们进行下面的步骤 在 SMenu项目中创建一个目录 SLayout, 这个目录里我们存储各种布局我们先来示例一种其它的我们根据需要可以自行设计。在这个目录中创建FullPage.jsx 文件 // SLayout/FullPage.jsximport Box from mui/material/Box; import Paper from mui/material/Paper;function FullPage({ sideMenu, pageHeader , children }) {return (Paper classNamed-flex overflow-hidden position-absolute w-100 h-100 p-0 m-0Box classNameh-100{sideMenu}/BoxBox classNamed-flex overflow-hidden position-relative flex-grow-1Box classNamed-flex flex-column overflow-auto p-0 m-0 position-relative flex-grow-1 flex-nowrapBoxclassNamew-100 p-3 border-bottomsx{{ height: 68 }}{ pageHeader }/BoxBox classNamep-0 w-100 h-100{children }/Box/Box/Box/Paper) }export default FullPage;这个没什么好说的就是主要就是利用Flex的特殊用 Bootstrap 对界面进行布局没什么难度。 现在我们利用这个布局把所用的元素添加进来。在SMenu项目目录下创建一个测试文件 SideMenuTest.jsx : // SideMenuTest.jsx import VerticalSplitIcon from mui/icons-material/VerticalSplit; import Box from mui/material/Box; import SideMenu from ./SMenu/SideMenu; import SToggleButton from ./SMenu/_SToggleButton; import { useSideMenuBadgeUpdate } from ./SMenu/_SMenuHooks; import FullPage from ./SLayout/FullPage; import Typography from mui/material/Typography; import Stack from mui/material/Stack; import ToggleThemeButton from ./STheme/TaggleThemeButton;function SideMenuTest() {const updateBadge useSideMenuBadgeUpdate();const onClickHandler (id, title, idPath, titlePath) {console.log(id, title, idPath, titlePath);updateBadge(id, 0);}return (FullPagesideMenu{SideMenutitle侧边菜单测试系统logo/logo.pnghClick {(){console.log(headerOnClick)}}mClick{onClickHandler} /}pageHeader{StackdirectionrowjustifyContentspace-betweenalignItemscenterspacing{2}classNamew-100SToggleButton icon{VerticalSplitIcon /} /ToggleThemeButton //Stack}Box classNamew-100 h-100 d-flex flex-grow-1 justify-content-center align-items-centerTypography varianth1欢迎来到码蚁基地/Typography/Box/FullPage) }export default SideMenuTest;上面有个按钮组件是切换 Theme 模式的ToggleThemeButton/的功能很简单就是调用我们先前设计好的 Theme 中的Hook, 这里给出一个示例供参考。我们在 STheme目录下创建这个组件文件ToggleThemeButton.jsx // STheme/TaggleThemeButton.jsximport IconButton from mui/material/IconButton; import useToggleTheme from ./useToggleThemeHook; import { useTheme } from emotion/react; import Brightness4Icon from mui/icons-material/Brightness4; import Brightness7Icon from mui/icons-material/Brightness7;function ToggleThemeButton() {const toggleSTheme useToggleTheme();const theme useTheme();return (IconButton sx{{ ml: 1 }} onClick{() { toggleSTheme(); }} colorinherit{theme.palette.mode dark ? Brightness7Icon / : Brightness4Icon /}/IconButton) }export default ToggleThemeButton;是不是很简单。 现在我们在SMenu项目目录下的 App.jsx中引入这个 SideMenuTest 组件就OK 了。如下所示 import SideMenuTest from ./SideMenuTest; import SideMenuProvider from ./SMenu/SideMenuProvider; import sideMenuConfigData from ./menuData;function App() {return (SideMenuProvider menuData{sideMenuConfigData}SideMenuTest //SideMenuProvider) }export default App;现在的目录结构看起来应该是这个样子的 你现在运行以后就可以看到一开始所示的动图的效果了。为了查看Badge的效果我们在 SideMenuProvider中将Badge的初始化值更改一下。这里改成了 30 如下所示 /*** 获取菜单项的id集合, 用于初始化菜单项的徽章,本菜单的每个Item都有一个id属性用于唯一标识菜单项。* param menuConfig * returns */ function initBadge(menuConfig){let ids {};menuConfig.forEach((element) {const name element.id;ids { ...ids, [name]: 30 };if (element.children) {const children element.children;children.forEach(el {const subName el.id;ids { ...ids, [subName]: 30 };})}});return ids; }注意我在 SideMenuTest 中传入菜单项点击事件的回调中 是这样写的 const updateBadge useSideMenuBadgeUpdate(); const onClickHandler (id, title, idPath, titlePath) {console.log(id, title, idPath, titlePath);updateBadge(id, 0); // 单击菜单项后清除 消息提示。 }现在的效果应该是这样的 现在我们已经验证了菜单的功能 但是让菜单和路由结合起来才是我们真正的目的。 设计路由界面 根据我之前 React Router相关的内容知识我们来要准备一个WellCome页面一个 Page404 页面 还有一个无数据匹配的空页面。 在App.jsx 文件中我们做出如下更改和配置 import SideMenuTest from ./SideMenuTest; import SideMenuProvider from ./SMenu/SideMenuProvider; import sideMenuConfigData from ./menuData; import Typography from mui/material/Typography;import {createBrowserRouter,RouterProvider, } from react-router-dom; import Page404 from ./SPages/Page404; import Wellcome from ./SPages/Wellcome; import NoMatchRoute from ./SPages/NoMatchRoute;const router createBrowserRouter([{path: /,element: SideMenuTest /,errorElement: Page404 /,children: [{path: userCenter,element: Typography varianth1这是个人中心页面模块/Typography,},{index: true,element: Wellcome /},{path: *,element: NoMatchRoute /}]}, ]);function App() {return (SideMenuProvider menuData{sideMenuConfigData}RouterProvider router{router} //SideMenuProvider) }export default App;我们配置了 Index 路由 还配置了 * 路由这个路由是当前路径下子路由没有匹配项时就显示这个路由页面。这几个页面我们可以随便写个组件都行就像 上面配置 userCenter 中的 element 一样。但是为了美观我事先设计 了几个页面直接引用也是一样的。 现在路由配置好了那么我们就要在 SideMenuTest中做一点小小的更改把主页面展示区改成 Router 的占位符组件, 并配置点击事件。如下所示 import VerticalSplitIcon from mui/icons-material/VerticalSplit; import Box from mui/material/Box; import SideMenu from ./SMenu/SideMenu; import SToggleButton from ./SMenu/_SToggleButton; import { useSideMenuBadgeUpdate } from ./SMenu/_SMenuHooks; import FullPage from ./SLayout/FullPage; import Stack from mui/material/Stack; import ToggleThemeButton from ./STheme/TaggleThemeButton; import { Outlet, useNavigate } from react-router-dom;function SideMenuTest() {const navigate useNavigate();const updateBadge useSideMenuBadgeUpdate();const onClickHandler (id, title, idPath, titlePath) {console.log(id, title, idPath, titlePath);updateBadge(id, 0);navigate(idPath.join(/), true);}return (FullPagesideMenu{SideMenutitle侧边菜单测试系统logo/logo.pnghClick{() { navigate(/, true); }}mClick{onClickHandler} /}pageHeader{StackdirectionrowjustifyContentspace-betweenalignItemscenterspacing{2}classNamew-100SToggleButton icon{VerticalSplitIcon /} /ToggleThemeButton //Stack}Box classNamew-100 h-100 d-flex flex-grow-1 justify-content-center align-items-centerOutlet //Box/FullPage) }export default SideMenuTest;现在我们的效果应该是这样的 相当的完美是不是。 至此你只要多加练习就一定能熟练的掌握 React 。本教程到此全部结束。 关于我的计划 快要过年了事比较多时间实在抽不出来了。可能要停更好几天了。后面我会出一个系列的 Swift UI 的教程和PHP相关的教程。祝大家新年快乐万事如意。
http://www.zqtcl.cn/news/645549/

相关文章:

  • 长沙做网站品牌中信建设官网站首页
  • 网站空白页黑链聊城网站建设代理商
  • 微信上打开连接的网站怎么做在网上可以做宣传的有那些网站
  • 公司在选择网站时应考虑什么问题溧阳 招网站开发
  • 兴宁电子商务网站建设农村电子商务网站建设方案
  • 张北县网站建设网站设计师加油站
  • 网站建设车成本网站开发网络结构图
  • 建设部职称网站宝山网站制作
  • 太仓网站建设哪家好58同城找工作
  • 一键网站制作机关网站建设建议
  • 快站公众号工具台州网站制作系统分析怎么写
  • 品牌网站制作方案如何写推广软文
  • o2o营销seo薪酬如何
  • 网站开发公司 网站空间推广网站制作
  • 鞍山网站制作小程序WordPress网盘下载插件
  • 保山市建设厅官方网站郑州建设信息网站
  • clh网站建设公司h5网站源代码
  • 做装修的网站怎么做好服装市场调网站建设的目的
  • 佛山网站建站电子工程网名又知道你是做工程
  • 桐乡网站二次开发商城购物网站建设
  • 大连微网站制作公司网页多钱
  • 郑州网站托管助企网络营销推广合作
  • 做电商网站用什么软件企业网站建设方案范本
  • o2o商城网站搭建潍坊定制网站搭建
  • 网站建设费用说明青岛网站建设方案公司
  • 佛山市建设企业网站服务机构优化seo是什么
  • 仿70网站分类目录源码市场营销策划ppt免费模板
  • 广东圆心科技网站开发网站模板设计网页程序代码
  • 网站平台定制开发一级a做爰网站下载
  • 网站如何做流媒体wordpress导出软件