当前位置: 首页 > news >正文

学做网站 书百度一下首页网页手机版

学做网站 书,百度一下首页网页手机版,百度打广告多少钱一个月,公司的网站建设公司需求#xff1a; 左上侧#xff1a;状态左下侧#xff1a;棋盘#xff0c;保证胜利就结束 和 下过来的不能在下右侧#xff1a;“时光机”,保证可以回顾#xff0c;索引 语法#xff1a; 父子之间属性传递#xff08;props#xff09;子父组件传递#xff08;写法上 左上侧状态左下侧棋盘保证胜利就结束 和 下过来的不能在下右侧“时光机”,保证可以回顾索引 语法 父子之间属性传递props子父组件传递写法上回调函数若与前者相同会出现无限渲染 //父组件中声明Square value{squares[0]} onSquareClick{() handleClick(0)} / //子组件接收或发射function Square({ value, onSquareClick }) {return (button classNamesquare onClick{onSquareClick}{value}/button); } Idea 时光机 不改动原数组slice()拷贝原数组[...history,squares]存各个时间数据若与每一步索引有关[...history.slice(0, currentMove 1), nextSquares] import { useState } from react;function Square({ value, onSquareClick }) {return (button classNamesquare onClick{onSquareClick}{value}/button); }function Board({ xIsNext, squares, onPlay }) {function handleClick(i) {if (calculateWinner(squares) || squares[i]) {return;}const nextSquares squares.slice();if (xIsNext) {nextSquares[i] X;} else {nextSquares[i] O;}onPlay(nextSquares);}const winner calculateWinner(squares);let status;if (winner) {status Winner: winner;} else {status Next player: (xIsNext ? X : O);}return (div classNamestatus{status}/divdiv classNameboard-rowSquare value{squares[0]} onSquareClick{() handleClick(0)} /Square value{squares[1]} onSquareClick{() handleClick(1)} /Square value{squares[2]} onSquareClick{() handleClick(2)} //divdiv classNameboard-rowSquare value{squares[3]} onSquareClick{() handleClick(3)} /Square value{squares[4]} onSquareClick{() handleClick(4)} /Square value{squares[5]} onSquareClick{() handleClick(5)} //divdiv classNameboard-rowSquare value{squares[6]} onSquareClick{() handleClick(6)} /Square value{squares[7]} onSquareClick{() handleClick(7)} /Square value{squares[8]} onSquareClick{() handleClick(8)} //div/); }export default function Game() {//const [xIsNext, setXIsNext] useState(true);//初始化为一个[[null,null.......null]],二维数组const [history, setHistory] useState([Array(9).fill(null)]);const [currentMove, setCurrentMove ] useState(0);// const currentSquares history[history.length-1];const currentSquares history[currentMove];const xIsNext currentMove % 2 0;function handlePlay(nextSquares) {//如果 history 为 [[null,null,null], [X,null,null]]nextSquares 为 [X,null,O]则新的 [...history, nextSquares] 数组将为 [[null,null,null], [X,null,null], [X,null,O]]// setHistory([...history, nextSquares]);// setXIsNext(!xIsNext);const nextHistory [...history.slice(0, currentMove 1), nextSquares];setHistory(nextHistory);setCurrentMove(nextHistory.length - 1)}const moveshistory.map((squares,move){let description;if (move0){descriptionGo to move# move;}else {descriptionGo to game start;}return(li key{move}button onClick{()jumpTo(move)}{description}/button/li)})function jumpTo(nextMove){setCurrentMove(nextMove);}return (div classNamegamediv classNamegame-boardBoard xIsNext{xIsNext} squares{currentSquares} onPlay{handlePlay} //divdiv classNamegame-infool{moves}/ol/div/div); }function calculateWinner(squares) {const lines [[0, 1, 2],[3, 4, 5],[6, 7, 8],[0, 3, 6],[1, 4, 7],[2, 5, 8],[0, 4, 8],[2, 4, 6],];for (let i 0; i lines.length; i) {const [a, b, c] lines[i];if (squares[a] squares[a] squares[b] squares[a] squares[c]) {return squares[a];}}return null; }
http://www.hkea.cn/news/14325937/

相关文章:

  • 高校服务地方专题网站建设网站备案全国合作拍照点
  • 肇庆网站建设方案咨询小程序开发前景怎么样
  • 网站项目经费预算南京医疗网站建设
  • 西安公司网站建设哪家专业怎么制作一张自己的图片
  • 网站怎么做轮幕泰顺做网站
  • 网站建设怎么选公司新闻稿在线
  • 到做任务的网站上面推广粉象生福州网站开发si7.cc
  • 深圳外贸建站搭建哪家好社交新零售
  • 网站开发团队如何设置域名
  • 网站开发工程师简历扁平风格网站 模板免费下载
  • 做网红用哪个网站南京制作网站公司
  • 招聘网站开发兼职广州十大猎头公司排名
  • 网站开发开始阶段的主要任务包括( )如何在建设银行网站查企业年金
  • 江西建设厅特殊工种的网站wordpress 博客信息
  • 网站开发工程师证书有用吗wordpress修改页面标题显示
  • 建立自己的公司网站设计网页制作策划路程
  • 汽车网站建设公司哪家好哪个网站做外贸的
  • 创建网站并制作首页教案博创安泰网站建设
  • 外贸网站建设 联雅中国做外贸最好的网站
  • 广西网络公司网站建设深圳网站建设加盟
  • wordpress自动发货如何设置网站面向哪些地区做优化容易
  • 四川省建设厅官方网站做装修网站价格
  • c2c平台分类烟台企业网站怎么优化
  • 建站 手机网站百度收录软件
  • 沧州seo公司购物网站seo搜索引擎优化方案
  • angular适合 做 网站吗seo教程:外链优化方法和原理介绍
  • 石家庄网站开发公司注册费用多少
  • mvc 网站模板seo的作用
  • 企业网站关键词优化环保网站设计是什么
  • 网站qq临时会话代码网站为什么要备案