版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2025年線上招聘面試題庫及答案本文借鑒了近年相關(guān)經(jīng)典試題創(chuàng)作而成,力求幫助考生深入理解測試題型,掌握答題技巧,提升應(yīng)試能力。一、選擇題1.在HTML5中,用于定義HTML文檔標(biāo)題的標(biāo)簽是?A.<head>B.<title>C.<header>D.<meta>答案:B解析:在HTML5中,<title>標(biāo)簽用于定義HTML文檔的標(biāo)題,這個標(biāo)題會顯示在瀏覽器的標(biāo)簽頁和搜索引擎的結(jié)果中。而<head>標(biāo)簽是用來包含那些不影響頁面內(nèi)容顯示的元數(shù)據(jù)的,例如字符集聲明、頁面標(biāo)題等。<header>標(biāo)簽通常用于頁面的頁眉部分,而<meta>標(biāo)簽則用于提供頁面元數(shù)據(jù),如字符集、關(guān)鍵詞、作者等。2.下列哪個不是JavaScript中的數(shù)據(jù)類型?A.StringB.BooleanC.ArrayD.Float答案:D解析:JavaScript中的數(shù)據(jù)類型包括String(字符串)、Boolean(布爾值)、Array(數(shù)組)、Number(數(shù)字)等。Float(浮點數(shù))是Number類型的一種,而不是一個獨立的類型。3.在CSS中,如何使一個元素的文本居中?A.text-align:left;B.text-align:right;C.text-align:center;D.text-align:justify;答案:C解析:在CSS中,text-align屬性用于設(shè)置文本的對齊方式。其中,text-align:center;可以使文本居中顯示。text-align:left;會使文本左對齊,text-align:right;會使文本右對齊,text-align:justify;會使文本兩端對齊。4.在React中,用于管理組件內(nèi)部狀態(tài)的鉤子是?A.useStateB.useEffectC.useContextD.useReducer答案:A解析:在React中,useState是用于管理組件內(nèi)部狀態(tài)的鉤子。useEffect用于處理副作用,如數(shù)據(jù)獲取、訂閱等。useContext用于訪問React上下文中的數(shù)據(jù)。useReducer用于復(fù)雜的狀態(tài)管理,通常與useState一起使用。5.在Python中,列表的索引從哪個數(shù)開始?A.0B.1C.-1D.-2答案:A解析:在Python中,列表的索引從0開始。例如,列表a=[1,2,3]中,a[0]的值是1,a[1]的值是2,a[2]的值是3。二、填空題1.在CSS中,用于設(shè)置元素寬度的屬性是__________。答案:width解析:在CSS中,width屬性用于設(shè)置元素的寬度。例如,width:100px;表示元素的寬度為100像素。2.在JavaScript中,用于聲明一個常量的關(guān)鍵字是__________。答案:const解析:在JavaScript中,const關(guān)鍵字用于聲明一個常量,一旦聲明,其值不能被重新賦值。3.在HTML5中,用于定義文章內(nèi)容的標(biāo)簽是__________。答案:article解析:在HTML5中,<article>標(biāo)簽用于定義獨立的、自包含的內(nèi)容,如博客帖子、新聞故事、論壇帖子等。4.在React中,用于處理組件生命周期事件的鉤子是__________。答案:useEffect解析:在React中,useEffect鉤子用于處理組件的生命周期事件,如組件掛載、更新、卸載等。5.在Python中,用于打開文件并讀取內(nèi)容的函數(shù)是__________。答案:open解析:在Python中,open函數(shù)用于打開文件并返回一個文件對象,可以用于讀取或?qū)懭胛募?。例如,withopen('file.txt','r')asf:可以打開一個名為file.txt的文件并讀取其內(nèi)容。三、簡答題1.請簡述HTML5中的語義化標(biāo)簽及其作用。答案:HTML5引入了多種語義化標(biāo)簽,用于更好地描述網(wǎng)頁的結(jié)構(gòu)和內(nèi)容。這些標(biāo)簽包括:-<header>:定義頁面的頁眉部分。-<nav>:定義導(dǎo)航鏈接的部分。-<main>:定義頁面主要內(nèi)容的部分。-<article>:定義獨立的、自包含的內(nèi)容。-<section>:定義文檔中的一個區(qū)段。-<aside>:定義與頁面內(nèi)容相關(guān)的輔助信息。-<footer>:定義頁面的頁腳部分。語義化標(biāo)簽的作用是提高網(wǎng)頁的可讀性和可維護性,便于搜索引擎優(yōu)化和輔助技術(shù)的使用。2.請簡述JavaScript中的異步編程及其常用方法。答案:JavaScript中的異步編程是指在執(zhí)行某些操作時,不阻塞主線程的執(zhí)行,等待操作完成后再進行處理。常用的異步編程方法包括:-回調(diào)函數(shù):在異步操作完成后,調(diào)用一個回調(diào)函數(shù)進行處理。-Promise:用于表示一個異步操作,可以鏈?zhǔn)秸{(diào)用多個異步操作。-async/await:基于Promise的語法糖,使異步代碼更易于閱讀和編寫。3.請簡述CSS中的盒模型及其組成部分。答案:CSS中的盒模型是指每個HTML元素都可以看作是一個盒子,盒子由內(nèi)容(content)、內(nèi)邊距(padding)、邊框(border)和外邊距(margin)四個部分組成。內(nèi)容部分是元素的實際內(nèi)容,內(nèi)邊距是內(nèi)容與邊框之間的空間,邊框是圍繞內(nèi)容的線條,外邊距是邊框與頁面其他元素之間的空間。盒模型的計算方式包括標(biāo)準(zhǔn)盒模型和IE盒模型,可以通過box-sizing屬性來控制盒模型的行為。4.請簡述React中的組件生命周期及其主要階段。答案:React中的組件生命周期是指組件從創(chuàng)建到銷毀的整個過程,主要分為三個階段:-掛載階段:組件被創(chuàng)建并插入到DOM中,包括constructor、render、componentDidMount等生命周期方法。-更新階段:組件的props或state發(fā)生變化,導(dǎo)致組件重新渲染,包括componentDidUpdate等生命周期方法。-卸載階段:組件被移除,包括componentWillUnmount等生命周期方法。5.請簡述Python中的列表推導(dǎo)式及其作用。答案:Python中的列表推導(dǎo)式是一種簡潔的語法,用于創(chuàng)建列表。列表推導(dǎo)式的基本格式為:[表達式for變量in可迭代對象if條件]。例如,[x2forxinrange(1,6)]會生成一個包含1到5的平方數(shù)的列表。列表推導(dǎo)式的作用是簡化代碼,提高代碼的可讀性和執(zhí)行效率。四、編程題1.請編寫一個JavaScript函數(shù),用于檢查一個字符串是否為回文。答案:```javascriptfunctionisPalindrome(str){constcleanedStr=str.replace(/[^A-Za-z0-9]/g,'').toLowerCase();constleft=0;constright=cleanedStr.length-1;while(left<right){if(cleanedStr[left]!==cleanedStr[right]){returnfalse;}left++;right--;}returntrue;}```解析:該函數(shù)首先將輸入的字符串去除非字母數(shù)字字符并轉(zhuǎn)換為小寫,然后使用兩個指針從字符串的兩端向中間移動,逐個字符進行比較。如果所有對應(yīng)字符都相等,則字符串是回文,否則不是。2.請編寫一個Python函數(shù),用于計算一個列表中所有偶數(shù)的平方和。答案:```pythondefsum_of_even_squares(nums):returnsum(x2forxinnumsifx%2==0)```解析:該函數(shù)使用列表推導(dǎo)式來生成一個包含列表中所有偶數(shù)的平方的列表,然后使用sum函數(shù)計算這些平方的和。3.請編寫一個HTML5和CSS3代碼,實現(xiàn)一個簡單的導(dǎo)航菜單。答案:```html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>導(dǎo)航菜單示例</title><style>body{font-family:Arial,sans-serif;}.navbar{background-color:333;overflow:hidden;}.navbara{float:left;display:block;color:white;text-align:center;padding:14px20px;text-decoration:none;}.navbara:hover{background-color:ddd;color:black;}</style></head><body><divclass="navbar"><ahref="home">首頁</a><ahref="services">服務(wù)</a><ahref="contact">聯(lián)系我們</a><ahref="about">關(guān)于我們</a></div></body></html>```解析:該代碼實現(xiàn)了一個簡單的導(dǎo)航菜單,包含四個鏈接。CSS樣式用于設(shè)置導(dǎo)航菜單的背景顏色、內(nèi)邊距、文本顏色等,并在鼠標(biāo)懸停時改變背景和文本顏色。4.請編寫一個React組件,用于顯示一個待辦事項列表,并允許用戶添加新的待辦事項。答案:```jsximportReact,{useState}from'react';functionTodoList(){const[todos,setTodos]=useState([]);const[newTodo,setNewTodo]=useState('');consthandleAddTodo=()=>{if(newTodo.trim()!==''){setTodos([...todos,newTodo]);setNewTodo('');}};return(<div><h1>待辦事項列表</h1><ul>{todos.map((todo,index)=>(<likey={index}>{todo}</li>))}</ul><inputtype="text"value={newTodo}onChange={(e)=>setNewTodo(e.target.value)}/><buttononClick={handleAddTodo}>添加待辦事項</button></div>);}exportdefaultTodoList;```解析:該組件使用useState鉤子來管理待辦事項列表和新待辦事項的狀態(tài)。用戶在輸入框中輸入新的待辦事項,點擊“添加待辦事項”按鈕后,新的待辦事項會被添加到列表中,并清空輸入框。五、論述題1.請論述前端開發(fā)中響應(yīng)式設(shè)計的重要性及其實現(xiàn)方法。答案:響應(yīng)式設(shè)計是指網(wǎng)頁能夠根據(jù)用戶的設(shè)備(如桌面、平板、手機等)自動調(diào)整布局和內(nèi)容,以提供最佳的瀏覽體驗。響應(yīng)式設(shè)計的重要性在于:-提高用戶體驗:用戶無論使用何種設(shè)備,都能獲得一致且優(yōu)化的瀏覽體驗。-提高搜索引擎排名:搜索引擎更傾向于推薦響應(yīng)式網(wǎng)站,有助于提高網(wǎng)站的可見性。-減少開發(fā)和維護成本:只需維護一個網(wǎng)站版本,而不是多個版本。實現(xiàn)響應(yīng)式設(shè)計的方法包括:-使用媒體查詢(MediaQueries):通過CSS媒體查詢,根據(jù)不同的屏幕尺寸應(yīng)用不同的樣式。例如,@media(max-width:600px){...}表示當(dāng)屏幕寬度小于600像素時,應(yīng)用其中的樣式。-使用彈性布局(Flexbox):Flexbox布局允許元素在容器中靈活地排列和分配空間,適應(yīng)不同的屏幕尺寸。-使用網(wǎng)格布局(Grid):Grid布局提供了一種更高級的布局方式,可以創(chuàng)建復(fù)雜的二維布局結(jié)構(gòu)。-使用響應(yīng)式圖片:使用img標(biāo)簽的srcset屬性,根據(jù)不同的屏幕分辨率加載不同大小的圖片。2.請論述React中的狀態(tài)管理及其常用方法。答案:狀態(tài)管理是指在一個React應(yīng)用中,管理和維護組件狀態(tài)的過程。狀態(tài)管理的重要性在于:-提高組件的復(fù)用性:通過狀態(tài)管理,可以將組件的狀態(tài)獨立于組件本身,便于組件的復(fù)用和組合。-提高應(yīng)用的性能:合理的狀態(tài)管理可以減少不必要的渲染,提高應(yīng)用的性能。常用的狀態(tài)管理方法包括:-組件狀態(tài)(ComponentState):使用useState鉤子來管理組件內(nèi)部的狀態(tài)。-上下文(Context):使用useContext鉤子來訪問React上下文中的數(shù)據(jù),實現(xiàn)跨組件的狀態(tài)共享。-Redux:Redux是一個流行的狀態(tài)管理庫,通過單一的狀態(tài)樹來管理應(yīng)用的狀態(tài),提供中間件和異步操作的支持。-MobX:MobX是一個簡單的狀態(tài)管理庫,通過觀察者模式來管理狀態(tài),提供響應(yīng)式的狀態(tài)管理。六、實踐題1.請編寫一個簡單的全棧應(yīng)用,實現(xiàn)用戶注冊和登錄功能。答案:該題目涉及前后端開發(fā),以下是一個簡單的實現(xiàn)方案:前端(React):-使用React創(chuàng)建一個用戶注冊和登錄界面。-使用axios庫發(fā)送HTTP請求到后端API。后端(Node.js+Express):-使用Express創(chuàng)建一個簡單的API,處理用戶注冊和登錄請求。-使用bcrypt庫對用戶密碼進行加密存儲。-使用jsonwebtoken庫生成和驗證JWT(JSONWebToken)。示例代碼:前端(React):```jsximportReact,{useState}from'react';importaxiosfrom'axios';functionApp(){const[username,setUsername]=useState('');const[password,setPassword]=useState('');const[isLogin,setIsLogin]=useState(true);consthandleSubmit=async()=>{constresponse=awaitaxios.post(isLogin?'http://localhost:5000/login':'http://localhost:5000/register',{username,password});console.log(response.data);};return(<div><h1>{isLogin?'登錄':'注冊'}</h1><inputtype="text"placeholder="用戶名"value={username}onChange={(e)=>setUsername(e.target.value)}/><inputtype="password"placeholder="密碼"value={password}onChange={(e)=>setPassword(e.target.value)}/><buttononClick={handleSubmit}>{isLogin?'登錄':'注冊'}</button><buttononClick={()=>setIsLogin(!isLogin)}>{isLogin?'沒有賬號?注冊':'已有賬號?登錄'}</button></div>);}exportdefaultApp;```后端(Node.js+Express):```javascriptconstexpress=require('express');constbcrypt=require('bcrypt');constjwt=require('jsonwebtoken');constapp=express();constport=5000;app.use(express.json());constusers=[];app.post('/register',async(req,res)=>{const{username,password}=req.body;consthashedPassword=awaitbcrypt.hash(password,10);users.push({username,password:hashedPassword});res.status(201).send('用戶注冊成功');});app.post('/login',async(req,res)=>{const{username,password}=req.body;constuser=users.find(u=>u.username===username);if(user&&pare(password,user.password)){consttoken=jwt.sign({username},'secret',{expiresIn:'1h'});res.send({token});}else{res.status(401).send('用戶名或密碼錯誤');}});app.listen(port,()=>{console.log(`服務(wù)器運行在http://localhost:${port}`);});```解析:前端部分使用React創(chuàng)建了一個用戶注冊和登錄界面,使用axios庫發(fā)送HTTP請求到后端API。后端部分使用Express創(chuàng)建了一個簡單的API,處理用戶注冊和登錄請求,使用bcrypt庫對用戶密碼進行加密存儲,使用jsonwebtoken庫生成和驗證JWT。2.請編寫一個簡單的全棧應(yīng)用,實現(xiàn)一個博客系統(tǒng),用戶可以發(fā)布和查看博客文章。答案:該題目涉及前后端開發(fā),以下是一個簡單的實現(xiàn)方案:前端(React):-使用React創(chuàng)建一個博客系統(tǒng)界面,包括文章列表、文章詳情、發(fā)布文章界面。-使用axios庫發(fā)送HTTP請求到后端API。后端(Node.js+Express):-使用Express創(chuàng)建一個簡單的API,處理博客文章的發(fā)布、獲取和刪除請求。-使用MongoDB作為數(shù)據(jù)庫,使用Mongoose庫進行數(shù)據(jù)模型定義和操作。示例代碼:前端(React):```jsximportReact,{useState,useEffect}from'react';importaxiosfrom'axios';functionApp(){const[posts,setPosts]=useState([]);const[newPost,setNewPost]=useState({title:'',content:''});useEffect(()=>{axios.get('http://localhost:5000/posts').then(response=>setPosts(response.data)).catch(error=>console.error(error));},[]);consthandleSubmit=async()=>{awaitaxios.post('http://localhost:5000/posts',newPost);setNewPost({title:'',content:''});axios.get('http://localhost:5000/posts').then(response=>setPosts(response.data)).catch(error=>console.error(error));};return(<div><h1>博客系統(tǒng)</h1><div><h2>發(fā)布文章</h2><inputtype="text"placeholder="標(biāo)題"value={newPost.title}onChange={(e)=>setNewPost({...newPost,title:e.target.value})}/><textareaplaceholder="內(nèi)容"value={newPost.content}onChange={(e)=>setNewPost({...newPost,content:e.target.value})}/><buttononClick={handleSubmit}>發(fā)布</button></div><div><h2>文章列表</h2>{posts.map(post=>(<divkey={post.id}><h3>{post.title}</h3><p>{post.content}</p></div>))}</div></div>);}exportdefaultApp;```后端(Node.js+Express):```javascriptconstexpress=require('express');constmongoose=require('mongoose');constbodyParser=require('body-parser');constapp=express();constport=5000;mongoose.connect('mongodb://localhost:27017/blog',{useNewUrlParser:true,useUnifiedTopology:true});constpostSchema=newmongoose.Schema({title:String,content:String});constPost=mongoose.model('Post',postSchema);app.use(bodyParser.json());app.get('/posts',async(req,res)=>{constposts=awaitPost.find();res.send(posts);});app.post('/posts',async(req,res)=>{constpost=newPost(req.body);awaitpost.save();res.status(201).send('文章發(fā)布成功');});app.delete('/posts/:id',async(req,res)=>{awaitPost.findByIdAndDelete(req.params.id);res.status(200).send('文章刪除成功');});app.listen(port,()=>{console.log(`服務(wù)器運行在http://localhost:${port}`);});```解析:前端部分使用React創(chuàng)建了一個博客系統(tǒng)界面,包括文章列表、文章詳情、發(fā)布文章界面,使用axios庫發(fā)送HTTP請求到后端API。后端部分使用Express創(chuàng)建了一個簡單的API,處理博客文章的發(fā)布、獲取和刪除請求,使用MongoDB作為數(shù)據(jù)庫,使用Mongoose庫進行數(shù)據(jù)模型定義和操作。答案和解析一、選擇題1.B解析:在HTML5中,<title>標(biāo)簽用于定義HTML文檔的標(biāo)題。2.D解析:JavaScript中的數(shù)據(jù)類型包括String、Boolean、Array、Number等,F(xiàn)loat不是獨立的類型。3.C解析:text-align:center;可以使文本居中顯示。4.A解析:useState是用于管理組件內(nèi)部狀態(tài)的鉤子。5.A解析:在Python中,列表的索引從0開始。二、填空題1.width解析:width屬性用于設(shè)置元素的寬度。2.const解析:const關(guān)鍵字用于聲明一個常量。3.article解析:<article>標(biāo)簽用于定義獨立的、自包含的內(nèi)容。4.useEffect解析:useEffect鉤子用于處理組件的生命周期事件。5.open解析:open函數(shù)用于打開文件并讀取內(nèi)容。三、簡答題1.HTML5中的語義化標(biāo)簽及其作用:-<header>:定義頁面的頁眉部分。-<nav>:定義導(dǎo)航鏈接的部分。-<main>:定義頁面主要內(nèi)容的部分。-<article>:定義獨立的、自包含的內(nèi)容。-<section>:定義文檔中的一個區(qū)段。-<aside>:定義與頁面內(nèi)容相關(guān)的輔助信息。-<footer>:定義頁面的頁腳部分。語義化標(biāo)簽的作用是提高網(wǎng)頁的可讀性和可維護性,便于搜索引擎優(yōu)化和輔助技術(shù)的使用。2.JavaScript中的異步編程及其常用方法:-回調(diào)函數(shù):在異步操作完成后,調(diào)用一個回調(diào)函數(shù)進行處理。-Promise:用于表示一個異步操作,可以鏈?zhǔn)秸{(diào)用多個異步操作。-async/await:基于Promise的語法糖,使異步代碼更易于閱讀和編寫。3.CSS中的盒模型及其組成部分:-內(nèi)容(content):元素的實際內(nèi)容。-內(nèi)邊距(padding):內(nèi)容與邊框之間的空間。-邊框(border):圍繞內(nèi)容的線條。-外邊距(margin):邊框與頁面其他元素之間的空間。4.React中的組件生命周期及其主要階段:-掛載階段:組件被創(chuàng)建并插入到DOM中,包括constructor、render、componentDidMount等生命周期方法。-更新階段:組件的props或state發(fā)生變化,導(dǎo)致組件重新渲染,包括componentDidUpdate等生命周期方法。-卸載階段:組件被移除,包括componentWillUnmount等生命周期方法。5.Python中的列表推導(dǎo)式及其作用:-列表推導(dǎo)式是一種簡潔的語法,用于創(chuàng)建列表。-作用是簡化代碼,提高代碼的可讀性和執(zhí)行效率。四、編程題1.JavaScript函數(shù),用于檢查一個字符串是否為回文:```javascriptfunctionisPalindrome(str){constcleanedStr=str.replace(/[^A-Za-z0-9]/g,'').toLowerCase();constleft=0;constright=cleanedStr.length-1;while(left<right){if(cleanedStr[left]!==cleanedStr[right]){returnfalse;}left++;right--;}returntrue;}```2.Python函數(shù),用于計算一個列表中所有偶數(shù)的平方和:```pythondefsum_of_even_squares(nums):returnsum(x2forxinnumsifx%2==0)```3.HTML5和CSS3代碼,實現(xiàn)一個簡單的導(dǎo)航菜單:```html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>導(dǎo)航菜單示例</title><style>body{font-family:Arial,sans-serif;}.navbar{background-color:333;overflow:hidden;}.navbara{float:left;display:block;color:white;text-align:center;padding:14px20px;text-decoration:none;}.navbara:hover{background-color:ddd;color:black;}</style></head><body><divclass="navbar"><ahref="home">首頁</a><ahref="services">服務(wù)</a><ahref="contact">聯(lián)系我們</a><ahref="about">關(guān)于我們</a></div></body></html>```4.React組件,用于顯示一個待辦事項列表,并允許用戶添加新的待辦事項:```jsximportReact,{useState}from'react';functionTodoList(){const[todos,setTodos]=useState([]);const[newTodo,setNewTodo]=useState('');consthandleAddTodo=()=>{if(newTodo.trim()!==''){setTodos([...todos,newTodo]);setNewTodo('');}};return(<div><h1>待辦事項列表</h1><ul>{todos.map((todo,index)=>(<likey={index}>{todo}</li>))}</ul><inputtype="text"value={newTodo}onChange={(e)=>setNewTodo(e.target.value)}/><buttononClick={handleAddTodo}>添加待辦事項</button></div>);}exportdefaultTodoList;```五、論述題1.前端開發(fā)中響應(yīng)式設(shè)計的重要性及其實現(xiàn)方法:-重要性:-提高用戶體驗:用戶無論使用何種設(shè)備,都能獲得一致且優(yōu)化的瀏覽體驗。-提高搜索引擎排名:搜索引擎更傾向于推薦響應(yīng)式網(wǎng)站,有助于提高網(wǎng)站的可見性。-減少開發(fā)和維護成本:只需維護一個網(wǎng)站版本,而不是多個版本。-實現(xiàn)方法:-使用媒體查詢(MediaQueries):根據(jù)不同的屏幕尺寸應(yīng)用不同的樣式。-使用彈性布局(Flexbox):允許元素在容器中靈活地排列和分配空間。-使用網(wǎng)格布局(Grid):提供了一種更高級的布局方式,可以創(chuàng)建復(fù)雜的二維布局結(jié)構(gòu)。-使用響應(yīng)式圖片:根據(jù)不同的屏幕分辨率加載不同大小的圖片。2.React中的狀態(tài)管理及其常用方法:-重要性:-提高組件的復(fù)用性:將組件的狀態(tài)獨立于組件本身,便于組件的復(fù)用和組合。-提高應(yīng)用的性能:合理的狀態(tài)管理可以減少不必要的渲染,提高應(yīng)用的性能。-常用方法:-組件狀態(tài)(ComponentState):使用useState鉤子來管理組件內(nèi)部的狀態(tài)。-上下文(Context):使用useContext鉤子來訪問React上下文中的數(shù)據(jù),實現(xiàn)跨組件的狀態(tài)共享。-Redux:通過單一的狀態(tài)樹來管理應(yīng)用的狀態(tài),提供中間件和異步操作的支持。-MobX:通過觀察者模式來管理狀態(tài),提供響應(yīng)式的狀態(tài)管理。六、實踐題1.簡單的全棧應(yīng)用,實現(xiàn)用戶注冊和登錄功能:-前端(React):```jsximportReact,{useState}from'react';importaxiosfrom'axios';functionApp(){const[username,setUsername]=useState('');const[password,setPassword]=useState('');const[isLogin,setIsLogin]=useState(true);consthandleSubmit=async()=>{constresponse=awaitaxios.post(isLogin?'http://localhost:5000/login':'http://localhost:5000/register',{username,password});console.log(response.data);};return(<div><h1>{isLogin?'登錄':'注冊'}</h1><inputtype="text"placeholder="用戶名"value={username}onChange={(e)=>setUsername(e.target.value)}/><inputtype="password"placeholder="密碼"value={password}onChange={(e)=>setPassword(e.target.value)}/><buttononClick={handleSubmit}>{isLogin?'登錄':'注冊'}</button><buttononClick={()=>setIsLogin(!isLogin)}>{isLogin?'沒有賬號?注冊':'已有賬號?登錄'}</button></div>);}exportdefaultApp;```-后端(Node.js+Express):```javascriptconstexpress=require('express');constbcrypt=require('bcrypt');constjwt=require('jsonwebtoken');constapp=express();constport=5000;app.use(express.json());constusers=[];app.post('/register',async(req,res)=>{const{username,password}=req.body;consthashedPassword=awaitbcrypt.hash(password,10);users.push({username,password:hashedPassword});res.status(201).send('用戶注冊成功');});app.post('/login',async(req,res)=>{const{username,password}=req.body;constuser=users.find(u=>u.username===username);if(user&&pare(password,user.password)){consttoken=jwt.sign({username},'secret',{expiresIn:'1h'});res.send({token});}else{res.status(401).send('用戶名或密碼錯誤');}});app.listen(port,()=>{console.log(`服務(wù)器運行在http://localhost:${port}`);});```2.簡單的全棧應(yīng)用,實現(xiàn)一個博客系統(tǒng),用戶可以發(fā)布和查看博客文章:-前端(React):```jsximportReact,{useState,useEffect}from'react';importaxiosfrom'axios';functionApp(){const[posts,setPosts]=useState([]);const[newPost,setNewPost]=useState({title:'',content:''});useEffect(()=>{axios.get('http://localhost
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年陜寧晉青海四省高三語文1月聯(lián)考試卷附答案解析
- 臺州浙江臺州市椒江區(qū)市場開發(fā)服務(wù)中心招聘筆試歷年參考題庫附帶答案詳解
- 北京2025年首都醫(yī)科大學(xué)附屬北京朝陽醫(yī)院招聘4人筆試歷年參考題庫附帶答案詳解
- 有關(guān)安全條款的裝修合同
- 安全工程師考試《安全生產(chǎn)技術(shù)基礎(chǔ)》真題及答案解析【完整版】
- 2025年全國高壓電工操作證理論考試題庫(含答案)
- 2026注冊測繪師《測繪管理與法律法規(guī)》練習(xí)題(含答案)
- 2026年建筑機器人合同
- 2026年建筑意外事故處理合同
- 安全員A證考試題庫附完整答案詳解【奪冠】
- 2024-2025學(xué)年廣東省實驗中學(xué)高一(上)期中語文試卷
- DB34T 1948-2013 建設(shè)工程造價咨詢檔案立卷標(biāo)準(zhǔn)
- 鋼鐵制造的工藝流程(內(nèi)部資料)課件
- DB31-T 1448-2023 監(jiān)獄場所消防安全管理規(guī)范
- 公司干部調(diào)研方案
- 無糾紛自愿離婚協(xié)議書
- 四川省高等教育自學(xué)考試畢業(yè)生登記表【模板】
- 專題五 以新發(fā)展理念引領(lǐng)高質(zhì)量發(fā)展
- GB/T 22417-2008叉車貨叉叉套和伸縮式貨叉技術(shù)性能和強度要求
- GB/T 1.1-2009標(biāo)準(zhǔn)化工作導(dǎo)則 第1部分:標(biāo)準(zhǔn)的結(jié)構(gòu)和編寫
- 長興中學(xué)提前招生試卷
評論
0/150
提交評論