使用React与antd新建自定导航栏

导航栏需求

  1. 默认在页面左上方显示一个展开的按钮与菜单名称,点击展开按钮,可以打开菜单,菜单垂直显示
  2. 有关闭菜单功能
  3. 菜单显示:
    1. 按照传入的参数显示菜单
    2. 有多个菜单分类,菜单分类不可点击
    3. 每个菜单分类下,可有多个链接
  4. 参数传入格式

        const menuDetail = [
          {
            categoryName:‘常用网站列表‘,
            subMenuList:[
              {
                index:1,
                name:‘淘宝‘,
                href:‘taobao.com‘
              },
              {
                index:2,
                name:‘百度‘,
                href:‘baidu.com‘
              }
            ]
          },
          {
            categoryName:‘工具网站‘,
            subMenuList:[
              {
                index:1,
                name:‘流程图‘,
                href:‘process.com‘
              },
              {
                index:2,
                name:‘事项管理‘,
                href:‘wonderlist.com‘
              }
            ]
          }
        ];

开发步骤

ant官网寻找最符合要求的原生导航栏的源码

import React from ‘react‘;
import ReactDOM from ‘react-dom‘;
import ‘antd/dist/antd.css‘;
import ‘./index.css‘;
import { Menu, Dropdown, Icon } from ‘antd‘;

const menu = (
<Menu>  <div> category one</div>  <Menu.Item key="0">    <a href="http://www.alipay.com/">1st menu item</a>  </Menu.Item>  <Menu.Item key="1">    <a href="http://www.taobao.com/">2nd menu item</a>  </Menu.Item>  <div> category two</div>  <Menu.Item key="2">    <a href="http://www.baidu.com/">3nd menu item</a>  </Menu.Item></Menu>
); ReactDOM.render( <Dropdown overlay={menu} trigger={[‘click‘]}> <a className="ant-dropdown-link" href="#"> Click me <Icon type="down" /> </a> </Dropdown>, document.getElementById(‘container‘)); 

需要将上图中的{menu}参数替换,因为我们需要根据传入的菜单参数动态显示菜单,3种待尝试方案

const

const可以使用花括号{}调用const与function

//1.变量传入const
const name = ‘Josh Perez‘;
const element = <h1>Hello, {name}</h1>;

ReactDOM.render(
  element,
  document.getElementById(‘root‘)
);

//2.function传入const

function formatName(user) {
  return user.firstName + ‘ ‘ + user.lastName;
}

const user = {
  firstName: ‘Harper‘,
  lastName: ‘Perez‘
};

const element = (
  <h1>
    Hello, {formatName(user)}!
  </h1>
);

ReactDOM.render(
  element,
  document.getElementById(‘root‘)
);

将Menu标签中的component列表定义为一个参数

const menuList = [?];
const listItems = numbers.map((number) =>
  <div>{menuList}</div>
);

ReactDOM.render(
  <Menu>{listItems}</Menu>,
  document.getElementById(‘root‘)
);

function

function不能直接通过{}使用非方法内的const,同一个class内定义function与const是否除外?

class

      

原文地址:https://www.cnblogs.com/xiaochengzi/p/9377001.html

时间: 2024-11-09 10:59:10

使用React与antd新建自定导航栏的相关文章

React实现顶部固定滑动式导航栏(导航条下拉一定像素时显示原导航栏样式)

摘要 基于react的框架开发一个顶部固定滑动式的酷炫导航栏,当导航栏置顶时,导航栏沉浸在背景图片里:当鼠标滑动滚轮时,导航栏固定滑动并展示下拉样式. HTML部分 相关技术栈:react.antd.react-router.详细的技术栈应用请参考官方文档的使用说明. * 展示主页App.jsx组件代码 import React from 'react'; import './App.css'; import { Link, Route } from 'react-router-dom'; im

[原创]React+Ant Design设置左侧菜单导航路由的显示与隐藏(与权限无关)

最近在学习react时,用到了很流行的UI框架Ant Design,也了解了一下Ant Design Pro,发现它们都有导航组件,Ant Design框架的导航菜单在这里,Ant Design Pro是权限菜单,权限菜单简单来说就是根据登录的权限来展示不同的菜单给用户,比如管理员有给用户分配不同角色的权限,那管理员就可以看到系统管理等导航菜单,而用户A只有发布某些业务的权限,那用户A就不能看到系统管理的导航菜单等等.不过这不在我们本文的考虑范围内,有兴趣的同学可以自行去看它的API:Autho

iOS开发——实用技术OC篇&amp;8行代码教你搞定导航控制器全屏滑动返回效果

8行代码教你搞定导航控制器全屏滑动返回效果 前言 此次文章,讲述的是导航控制器全屏滑动返回效果,而且代码量非常少,10行内搞定. 效果如图: 如果喜欢我的文章,可以关注我,也可以来小码哥,了解下我们的iOS培训课程.陆续还会有更新ing.... 一.自定义导航控制器 目的:以后需要使用全屏滑动返回功能,就使用自己定义的导航控制器. 二.分析导航控制器侧滑功能 效果:导航控制器默认自带了侧滑功能,当用户在界面的左边滑动的时候,就会有侧滑功能. 系统自带的侧滑效果: 分析: 1.导航控制器的view

搜索框和导航栏(React Native)

搜索框和导航栏(React Native) by 伍雪颖 'use strict'; var React = require('react-native'); var { AppRegistry, StyleSheet, View, TextInput, } = React; class SearchBar extends React.Component { render() { return ( <View style={styles.searchRow}> <TextInput au

React Native自定义导航栏

之前我们学习了可触摸组件和页面导航的使用的使用: 从零学React Native之09可触摸组件 - 从零学React Native之03页面导航 - 经过之前的学习, 我们可以完成一个自定义导航栏了, 效果如下: 我们需要创建一个 NaviBar.js 用来显示顶部的导航栏, 还需要四个界面(Page1.js,Page2.js,Page3.js,Page4.js). 当然还需要修改index.android.js或者index.ios.js 用来处理4个界面的切换. 导航栏NaviBar 实现

react+mobx+antd按需加载 出现Support for the experimental syntax &#39;decorators-legacy&#39; isn&#39;t currently enabled

baidu上面的说法大多是在 项目的package.json 中添加decorators-legacy 因为引入了antd的按需加载 所以只需要在config-overrides.js中添加addDecoratorsLegacy() const { override, fixBabelImports,addDecoratorsLegacy } = require('customize-cra'); module.exports = override( fixBabelImports('impor

React实现导航栏点击高亮

在jquery中实现导航栏的切换只需要一行代码找到同级其他元素removeClass以及添加点击元素addClass就可以实现了,但是React没法直接找到同级元素,这个时候需要一点js中的思维,根据添加的序列号判断该添加哪种className 为了方便实例测试,这个我直接引用了菜鸟教程的在线文件,可以直接将代码粘贴运行 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <

自定导航控制器

// // CustNavigationViewController.m // 生活荟 // // Created by 李冬强 on 15-1-19. // Copyright (c) 2015年 ldq. All rights reserved. // #import "CustNavigationViewController.h" @interface CustNavigationViewController () @end @implementation CustNavigat

[ExtJS5学习笔记]第十七节 Extjs5的panel组件增加accodion成为折叠导航栏

本文地址:http://blog.csdn.net/sushengmiyan/article/details/39102335 官方例子:http://dev.sencha.com/ext/5.0.1/examples/window/layout.html?theme=neptune 本文作者:sushengmiyan -----------------------------------------------------------------------------------------