react怎麼實現通訊錄
react實現通訊錄的方法:1、建立一批通訊錄資料;2、準備左右兩個dom容器,分別用於承載使用者清單和首字母清單;3、產生使用者清單和首字母列表;4、將首字母頁面的id作為字母列表的值;5、把對應首字母頁面的id傳到方法裡,然後通過h5的scrollIntoView方法跳到對應的錨點即可。
本教學操作環境:Windows10系統、react18.0.0版、Dell G3電腦。
react怎麼實現通訊錄?
react實現通訊錄效果
業務描述:透過react實現一個類似通訊錄的頁面,並且可以透過點擊側邊首字母跳到對應的使用者
大致效果
步驟
1,先造一批假資料
const users = [ [ {id: 0, name:"a",imgUrl:white}, {id: 1, name:'ahat',imgUrl:sysImg4}, {id: 2, name:'aocial',imgUrl:sysImg4}, {id: 3, name:'aircle',imgUrl:sysImg4}, ], [ {id: 4, name:"b",imgUrl:white}, {id: 5, name:'bhat',imgUrl:sysImg4}, {id: 6, name:'bocial',imgUrl:sysImg4}, {id: 7, name:'bircle',imgUrl:sysImg4}, ] , [ {id: 8, name:"c",imgUrl:white}, {id: 9, name:'chat',imgUrl:sysImg4}, {id: 10, name:'cocial',imgUrl:sysImg4}, {id: 11, name:'circle',imgUrl:sysImg4}, ] , [ {id: 12, name:"d",imgUrl:white}, {id: 13, name:'dhat',imgUrl:sysImg4}, {id: 14, name:'docial',imgUrl:sysImg4}, {id: 15, name:'dircle',imgUrl:sysImg4}, ] , [ {id: 16, name:"e",imgUrl:white}, {id: 17, name:'ehat',imgUrl:sysImg4}, {id: 18, name:'eocial',imgUrl:sysImg4}, {id: 19, name:'eircle',imgUrl:sysImg4}, ] ];
2生成使用者清單頁面
1先準備左右兩個dom容器,分別用於承載使用者清單和首字母清單
return ( <div className={this.props.chatShow }> <div className={jsPage.chatRight}> <div className={jsPage.pointListStyle} id="points"> {pointLists} </div> </div> <div className={jsPage.chatLeft+" "+universal.columnStartCenter}> {userLists} </div> </div> )
css
.chatRight{ height: 100%;width: 3%; position:fixed;right: 0; } .chatLeft{ height: 100%;width: 95%; }
2透過資料分別產生使用者列表和首字母列表放入上一步生成的容器中
//用户列表 var userLists=new Array(); //侧栏首字母列表 var pointLists=new Array(); //遍历 for(var i=0;i<users.length;i++){ //得到每个首字母对应的用户 var user=users[i]; //map遍历生成用户信息 const userList=user.map( (number)=> <div className={universal.rowCenter+" "+jsPage.chatSpan} key={number.id} id={number.name}> <img src={number.imgUrl} className={jsPage.imgStyle2} ></img> <div className={jsPage.chatUserInfo+" "+universal.rowStart}> <div className={jsPage.chatUserInfoSpan+" "+ universal.rowCenter+" "+ jsPage.fontStyle1}>{number.name}</div> <div className={jsPage.chatUserInfoSpan}></div> </div> </div> ) //将用户信息放入用户列表 userLists.push(userList); //生成首字母信息 const point=<div onClick={msg=>this.scrollToAnchor(msg)} className={jsPage.pointStyle} key={user[0].name} >{user[0].name} </div> //将首字母信息放入首字母列表 pointLists.push(point); }
3 點擊首字母滾動到對應用戶
注意我們在第二步生成畫面的時候,重要的一步:將首字母滾動到對應用戶
注意我們在第二步生成畫面的時候,重要的一步:將首字母頁面的id作為字母列表的值
<div className={universal.rowCenter+" "+jsPage.chatSpan} key={number.id} id={number.name}>
<div onClick={msg=>this.scrollToAnchor(msg)} className={jsPage.pointStyle} key={user[0].name} >{user[0].name} </div>
這樣透過點擊首字母時就可以把對應首字母頁面的id傳到方法裡,然後透過h5的scrollIntoView方法跳到對應的錨點,
scrollToAnchor (e) { // 找到锚点 var anchorElement = document.getElementById(e.target.innerHTML); // 如果对应id的锚点存在,就跳转到锚点 anchorElement.scrollIntoView(); }
以上是react怎麼實現通訊錄的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何利用React和RabbitMQ建立可靠的訊息傳遞應用程式引言:現代化的應用程式需要支援可靠的訊息傳遞,以實現即時更新和資料同步等功能。 React是一種流行的JavaScript庫,用於建立使用者介面,而RabbitMQ是一種可靠的訊息傳遞中間件。本文將介紹如何結合React和RabbitMQ建立可靠的訊息傳遞應用,並提供具體的程式碼範例。 RabbitMQ概述:

ReactRouter使用指南:如何實現前端路由控制隨著單頁應用的流行,前端路由成為了一個不可忽視的重要部分。 ReactRouter作為React生態系統中最受歡迎的路由庫,提供了豐富的功能和易用的API,使得前端路由的實作變得非常簡單和靈活。本文將介紹ReactRouter的使用方法,並提供一些具體的程式碼範例。安裝ReactRouter首先,我們需要

PHP、Vue和React:如何選擇最適合的前端框架?隨著互聯網技術的不斷發展,前端框架在Web開發中起著至關重要的作用。 PHP、Vue和React作為三種代表性的前端框架,每一種都具有其獨特的特徵和優勢。在選擇使用哪種前端框架時,開發人員需要根據專案需求、團隊技能和個人偏好做出明智的決策。本文將透過比較PHP、Vue和React這三種前端框架的特徵和使

Java框架與React框架的整合:步驟:設定後端Java框架。建立專案結構。配置建置工具。建立React應用程式。編寫RESTAPI端點。配置通訊機制。實戰案例(SpringBoot+React):Java程式碼:定義RESTfulAPI控制器。 React程式碼:取得並顯示API回傳的資料。

如何利用React開發一個響應式的後台管理系統隨著互聯網的快速發展,越來越多的企業和組織需要一個高效、靈活、易於管理的後台管理系統來處理日常的操作事務。 React作為目前最受歡迎的JavaScript庫之一,提供了一種簡潔、高效和可維護的方式來建立使用者介面。本文將介紹如何利用React開發一個響應式的後台管理系統,並給出具體的程式碼範例。建立React專案首先

Vue.js適合中小型項目和快速迭代,React適用於大型複雜應用。 1)Vue.js易於上手,適用於團隊經驗不足或項目規模較小的情況。 2)React的生態系統更豐富,適合有高性能需求和復雜功能需求的項目。

React通過JSX與HTML結合,提升用戶體驗。 1)JSX嵌入HTML,使開發更直觀。 2)虛擬DOM機制優化性能,減少DOM操作。 3)組件化管理UI,提高可維護性。 4)狀態管理和事件處理增強交互性。

react有事件處理函數、useEffect和useCallback、高階元件等等閉包。詳細介紹:1、事件處理函數閉包:在React中,當我們在元件中定義事件處理函數時,函數會形成一個閉包,可以存取元件作用域內的狀態和屬性。這樣可以在事件處理函數中使用元件的狀態和屬性,實現互動邏輯;2、useEffect和useCallback中的閉包等等。
