• 技术文章 >web前端 >js教程

    怎么使用react实现一个tab组件

    藏色散人藏色散人2022-10-25 17:19:01原创234

    使用react实现一个tab组件的方法:1、通过“export default props => {...}”方式创建TAB button组件;2、通过“tab-group-layout.js”组件来传“tabIndex”,并设置默认选中的tab效果;3、用react继承“react.component”组件里的onMouseOver和OnMouseOut方法即可。

    大前端成长进阶课程:进入学习

    本教程操作环境:windows7系统、react18.0.0版、Dell G3电脑。

    怎么使用react实现一个tab组件?

    react写Tab组件

    使用react写TAB栏组件和对应hover事件(背景:在用gatsby开发页面时,遇到这样的组件效果,顺便记录一下)

    1、效果

    默认选中的tab选中效果 和 鼠标放上去的hover效果

    当鼠标滑过右侧的tab时,也会有和第一个一样的选中效果!

    2、tab-button.js 组件

    import React from "react"
    import { css } from "@emotion/core"
    import { Link } from "gatsby"
    import jdyStyles from "./container.module.css"
     
    // TAB button 组件
    export default props => {
     
    return (
     
    <li css={css`font-size: 18px;margin-left:18px;margin-right: 18px;display:flex;flex-direction: column;align-items:center;justify-content:center`} >
     
    <Link css={css`font-size: 18px;padding: 20px 12px;`} 
    className={ (props.selected?jdyStyles.header_hover_default:jdyStyles.header_hover)  }  to={props.to}>
    {props.children}
    </Link>
     
    </li>
     
    )
    }

    3、tab-group-layout.js 组件

    import React from "react"
    import { css } from "@emotion/core"
    import { Link } from "gatsby"
    import ListLink from "../components/tab-button"
    import RegisterButton from "../components/round-button"
    export default ({ tabIndex }) => {
     
    return (
     
    <div>
      
    {/* tab */}
    <ul style={{ listStyle: `none`, float: `right` }} css={css`display: flex;justify-content: space-between;align-items: center;`}>
    <ListLink to="/official-site/" selected={(tabIndex==='official-site')}>产品介绍</ListLink>
    <ListLink to="/about/" selected={(tabIndex==='about')}>成功案列</ListLink>
    <ListLink to="/contact/" selected={(tabIndex==='contact')}>服务支持</ListLink>
    <ListLink to="/sweet-pandas-eating-sweets/" selected={(tabIndex==='sweet-pandas-eating-sweets')}>资源中心</ListLink>
    </ul>
     
    </div>
     
    )
    }

    使用这个组件传过来 tabIndex 设置默认选中的tab效果;也可以自己处理展示的逻辑

    4、对应的css样式 container.module.css

    .header_hover{
      color: #333;
    }
     
    .header_hover_default{
      color: #0084ff!important;
      border-top: 3px solid #0084ff;
    }
     
    .header_hover:hover{
      color: #0084ff!important;
      border-top: 3px solid #0084ff;
    }

    5、当前组件的hover使用的是css样式控制,也可以用 react继承 react.component组件里的onMouseOver和OnMouseOut方法来实现

    推荐学习:《react视频教程

    以上就是怎么使用react实现一个tab组件的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    快捷开发Web应用及小程序:点击使用

    支持亿级表,高并发,自动生成可视化后台。

    专题推荐:tab组件 React
    上一篇:看看怎么使用nodejs生成二维码 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 总结Vue创建响应式数据对象(reactive、ref、toRef、toRefs)• 详解vue3中reactive和ref的区别(源码解析)• 原理详解:Vue3中reactive和ref的区别• 什么是React高阶组件?怎么它创建一个面包屑导航?
    1/1

    PHP中文网