React-vant

版本

https://react-vant-gitee.3lang.dev/ -- react-vant

安装

使用 npm 或 yarn 安装#

# 通过 npm 安装
npm i react-vant

# 通过 yarn 安装
yarn add react-vant


使用

import React from 'react'
import { useNavigate, useLocation} from 'react-router-dom'
import React from 'react'
import { Tabbar } from 'react-vant'
import { FriendsO, HomeO, LikeO  } from '@react-vant/icons'

const Tab = () =>{
    const tabs = [
        {
          name: '/',
          title: '首页',
          icon: <HomeO />,
        },
        {
          name: '/user/base/contact',
          title: '新建',
          icon: <LikeO />,
        },
        {
          name: '/user/base/index',
          title: '我的',
          icon: <FriendsO />,
        },
    ]
    const navigate = useNavigate()

    const location = useLocation()

    const [tabName,settabName]  = React.useState('/')

    React.useEffect(() => {
        settabName(location.pathname)
    })

    // 切换标签时触发事件
    const onChangeTab = (val) => {
        settabName(val)
        navigate(val)
    }

        return (
            <div className="tabbar">
                <TabBar value={tabName} onChange={onChangeTab}  className="item">
                    {tabs.map(item => (
                        <TabBar.Item name={item.name} icon={item.icon}>{item.title}</Tabbar.Item>
                    ))}
                </TabBar>
            </div>
        )

}

export default Tab


组件更改样式

// React 脚手架里面已经配置了 Sass,只需要安装 Sass即可;

npm install sass-loader node-sass --save-dev

// 页面使用
import React from 'react'
import styles from './contactadd.scss'

 return (
    <div className="contacttype">
        <TabBar value={tabName} onChange={onChangeTab}  className="item">
            {tabs.map(item => (
                <TabBar.Item name={item.name} icon={item.icon}>{item.title}</Tabbar.Item>
            ))}
        </TabBar>
    </div>
)


contactadd.scss

// 自定义样式名
.contacttype{
    // 组件样式名
    .rv-tabbar-item--active{
       color:red;
    }
}
powered by GitbookEdit Time: 2023-04-08 10:28:32