1. 程式人生 > >react點選tab樣式切換(tab標籤及樣式切換)

react點選tab樣式切換(tab標籤及樣式切換)

react tab標籤以及樣式切換。

方法一: 

原理: 利用state 中的變數值,控制menu列表平的樣式切換

示例demo:

import React from "react";import "./App.css"
export default class App extends React.Component{ state = { menuNum: 1 }
setMenuNum = (num) => { this.setState({ menuNum: num }); }
render(){ return ( <div className
="box"> <button className={this.state.menuNum===1?"btn btn-choose ":"btn"} onClick= {()=>this.setMenuNum(1)} >按鈕1</button> <button className={this.state.menuNum===2?"btn btn-choose ":"btn"} onClick= {()=>this.setMenuNum(2)}
>按鈕2</button> <button className={this.state.menuNum===3?"btn btn-choose ":"btn"} onClick= {()=>this.setMenuNum(3)} >按鈕3</button> </div> ) }}.box { margin: 40px auto; text-align: center;}
.btn { width: 80px; height: 40px; background
: green; margin: 20px;}
.btn-choose{ background: pink;}

方法二:

原理:(利用 react-router實現

1、將Route進行一次封裝,並將link設定到他的子元素

2、點選link  將會觸發 所有 path 符合的 Route

3、因為包裹該 link 的Route 的path 是 吻合的,其他的是不吻合的,(吻合時,children回撥中的match是存在的)

4、所以 根據子元素 的match 是否存在判斷link標籤是否被點選了

5、再根據  match 是否存在設定不同的樣式

6、因為每次點選link 都會觸發 Route ,所以樣式也會跟著切換

示例demo:

import React, { Component } from 'react';import logo from './logo.svg';import './App.css';import { BrowserRouter as Router, Route, Link} from 'react-router-dom';
const Styles = { li1: { color: "blue", background: "red", float: "left", listStyle: "none", margin: "10px" }, li2: { color: "white", background: "black", float: "left", listStyle: "none", margin: "10px" }}
// 對Route 進行一次封裝, 當點選 link 觸發的時候,包裹 該link 的 route 的path 吻合也會觸發,// 然後判斷 match 是否存在,存在的話 就設定一個樣式,不存在的話設定另一個樣式const MenuItem = ({ to, text, exact }) => { return <Route path={to} exact={exact} children={ ({ match }) => { console.log(match,"match") return <Link to={to}> <li style={match ? Styles.li1 : Styles.li2}>{text}</li> </Link> }} />};
const Home = () => ( <div>home</div>)const Login = () => ( <div>login頁</div>)const Main = () => ( <div>main</div>)
class App extends Component {
render() { return ( <Router> <div style={{margin:"40px"}}> <div style={{overflow:"hidden"}}> <MenuItem to="/home" text="主頁" exact /> <MenuItem to="/login" text="登入" /> <MenuItem to="/main" text="內容" /> </div> <hr/> <div style={{textAlign:"left"}}> <Route path="/home" component={Home} /> <Route path="/login" component={Login} /> <Route path="/main" component={Main} /> </div>
</div> </Router> ); }}
export default App;

相關推薦

scrapy+selenium中關於同一個頁面模擬後,開啟新的標籤頁,切換到新頁面的方法

windows = spider.browser.current_window_handle # 定位當前頁面控制代碼 time.sleep(5) target = spider.browser.find_element_by_id("toolber-keyword") keyword

獲取多下拉框select標籤設定multiple屬性的值

<select multiple>不能直接獲取value,需要藉助該元素的options屬性。如下: <select id="select" multiple> <option value="1">1111</option> &

reacttab樣式切換tab標籤樣式切換

react tab標籤以及樣式切換。方法一: 原理: 利用state 中的變數值,控制menu列表平的樣式切換示例demo:import React from "react";import "./App.css"export default class App extends

NotificationNotification的通知欄常駐、各種樣式無效、禁止滑動刪除、相容低版本

Notification(Notification的通知欄常駐、Notification的各種樣式、Notification點選無效、Notification禁止滑動刪除) Android的Notification是android系統中很重要的一個機制, 產品人員常常利用通

React切換子元件

業務描述 在如上圖所示的頁面上我需要分別點選底下的三個圖示將中間內容部分分別替換成對應的元件,也就是在一個大元件中分別切換三個小元件 效果展示 因為是移動端,請按F12切換成移動端 思路 通過控制css屬性display:none來控制三個頁面是

小程式的scroll-view元件的自動滑動效果類似於微信流量充值中滑塊的效果

廢話不多說,直接上圖吧!我的目的是想要達到滑鼠點選每項時,滑塊會自動滑動,具體可開啟微信流量充值體驗體驗。但是小程式scroll-view元件並不能達到這個效果,必須手動拖動,才能滑動,網上找了許久沒有找到相關的程式碼片段,最終發現zanUI有這個元件,參照這個元件的tab元件來完成的。zanU

讓你的部落格率迅速提高

一、 推薦部落格到各大搜索引擎。 1、把自己的部落格推薦到百度、Google等主要搜尋引擎。     如果不把你的部落格提交到各大搜索引擎中,它們一般是不會收錄你的部落格的,你可以先嚐試一下看看能不能在百度搜到你的部落格吧。   如果搜不到的話說明

swift - xcode10 - 事件互動BUG - 手勢和button的addTarget方法

1. 現象button 點選閃退:沒有任何原因 ,在聽雲檢測上,顯示 BUG2: 手勢 沒有任何作用,哪怕設定  isUserInteractionEnabled 和isEnabled 為true 都不行原因 及 解決方法 :沒有懶載入。。 解決方法: 1 新增lazy 2.

react 按鈕返回上一級路由

在這我是以一個點選圖示返回為例的 1. 在要點選的按鈕或者圖片上新增事件 <img src="images/back.png" alt="" onTouchStart={this.backClick}/>   2. 事件編寫  // 點選

bootstrap遮罩層modal的時候,禁止模態框被使用者關閉手動。

首先,在編寫模態框時,div初始化時新增屬性 data-backdrop=“static” tableindex="-1"。 <div id="loading" class="modal" d

react 事件+父子傳值

接下來要做的效果是,在父元件新增兩個按鈕,點選後改變父元件傳過去的值 父元件 1 import React, { Component } from 'react'; 2 import Test from './component/test'; 3 //宣告welcome元件 4 class

c#wimform在vs2010生成的exe在xp上無反應。解決方法之一

從某個幾角疙瘩找到解決方法。 首先確保生成平臺是x86,其次是確保引入的dll能夠適應win32和xp系統。其三,如果是在win7環境下開發,還有一種可能,就是軟體圖示問題,win7下可以使用任意大小的ioc。但是在xp系統下,要使用16 x 16的ioc圖示。如果以上方法

EditText控制元件的基本使用Button按鈕,Toast提示EditText中的內容

EditText是程式用於和使用者進行互動的另一個重要控制元件,它允許使用者在空間裡輸入和編輯內容,並可以在程式中對這些內容進行處理。EditText的應用場景非常普遍,在進行發簡訊、發微博、聊QQ等操作時,你不得不使用EditText。接下來我們直接看實現效果圖,再看程式碼。 效果圖:

Android開發返回鍵退出出現dialog

重寫activity的如下方法,使其在點選返回按鈕使彈出是否退出: (注:此方法只針對於只有一個activity的APP,如果存在多個activity可以使用startactivityforresult的處理事件進行,每開啟一個activity均使用startactivi

robot framework程式執行過程中,遇到事件之後,未出現之後的效果求解

1.click Element操作,在實際過程中偶然會出現,日誌顯示已點選成功,但是實際自動化頁面,沒有點選成功之後的操作 現象: 現象描述:程式執行到點選側邊欄的【人員資訊】之後,日誌顯示已經點選成功,但是報錯截圖可以看到並沒有相對應點選成功之後,出現的人員資訊頁面,故判斷找不到開啟頁面 測試中其他的

Button 後改變顏色 不是後改變顏色又恢復

慣例先上效果圖 1.首先我們想製作這個按鈕的樣式 建立一個selector的xml檔案規定了,按鈕,被按下和不被按下時的背景顏色不懂的同學點選這裡 <?xml version="

實現ssm加layui資料表格展示資料,搜尋,編輯,分頁後臺用pagehelper,排序,檢視圖片 ,檢視大圖彈出層

之前的方法檢視大圖有bug現在換了個方法,修改後就可以了,有問題請留言 先上圖 整個頁面用的都是layui外掛。 頁面有資料展示(帶分頁),顯示圖片,檢視圖片大圖,編輯資料實時更新。搜尋功能帶分頁。 引入layui.css,layui.js 2個檔案,檔案自行到官網下

vue中v-for迴圈選中的元素並對該元素新增樣式

相信大家都會遇到這種情況:v-for迴圈時,我只需要點選到的元素做出相應反應,其他的元素不變;但是往往所有v-for迴圈出的元素都會變化。如下面的程式碼:我需要點選到的元素新增一個類樣式,其他元素不變,但是這樣會導致所有的元素都會變化 html: <div v-for = "(item

如何用資料驅動實現通用化巡檢APP如何一個介面裡新增多個拍照按鈕並顯示在不同的imageview裡

最近啟動了一個新專案叫通用化,老師的設想是這樣的:APP裡顯示的內容和佈局都是不確定的,需要從後臺傳過來的json串中解析出來,然後經過一系列的迴圈和判斷語句,為APP新增上json中要求的佈局和內容,就連文字的大小和顏色也都是從後臺獲取的。 剛開始的時候覺得

React事件不好用,可能是被其他元件遮擋

入門React不久,練習例子的時候發現點選退出事件不好用。而邏輯啥的沒有問題,在點選事件裡寫console列印也沒反應(就是根本不識別)。搜尋一下,發現可能是按鈕所在的元件被底部導航遮擋住了。給導航的less樣式新增“z-index:-1”便可以使用了。