getServerSideProps() 没有被调用 nextJS 13
P粉211600174
P粉211600174 2023-10-31 15:38:58
0
2
551

试图熟悉 nextJS 13。 我遇到的是getServerSideProps函数没有预渲染页面道具。这是我第一次尝试,所以我不知道我是否做错了。

这里是 /app/login/page.js

import Content from "@/components/content"; import LoginForm from "@/components/loginForm"; import Title from "@/components/title"; function Login({ message }) { return (  
{message || "NextJS is ok."} </div> <LoginForm /> </Content> ); } export default Login; export async function getServerSideProps() { console.log("running getServerSideProps function.."); return { props: { message: "NextJS is awesome!" }, }; }</pre> <p>我在这里想要实现的关键是在显示登录页面之前使用 axios 请求检查服务器的会话密钥。如果用户已登录,则应将用户重定向到主页。如果我能够使此功能正常工作,这是未来的代码:</p> <pre class="brush:php;toolbar:false;">export async function getServerSideProps() { console.log("Im running getServerSideProps funct "); let isLoggedIn = false; try { const response = await api.get("/users/session-check", { withCredentials: true, }); if (response.status === 200) isLoggedIn = true; } catch (err) { console.log(err.message); } if (isLoggedIn) { return { redirect: { destination: "/", permanent: false, }, }; } return { props: {}, }; }</pre> <p>我尝试使用<code 重新启动="">npm run dev</code>仍然得到相同的结果...</p> </div> <div class="share flexRow"> <div class="shareReply flexColumn shareDiv"> <a href="javascript:;"><img class="sharerImg" src="//m.sbmmt.com/static/images/images/icon50.png" data-id="1"></a> <span class="sharerSpan">2</span> </div> <div class="shareLike flexColumn shareDiv" onclick="ask_comment_good(173334)"> <a href="javascript:;"><img class="sharerImg" src="//m.sbmmt.com/static/images/images/icon52.png" data-id="2"></a> <span class="sharerSpan">0</span> </div> <div class="shareLDz flexColumn shareDiv dzdiv dzdiv1 askgoodICollection" data-id="173334"> <a href="javascript:;"><img class="sharerImg " src="//m.sbmmt.com/static/images/images/icon37.png" data-id="5"></a> <span class="sharerSpan">0</span> </div> </div> <div id="commentinput" class="info detail-comment-input layui-hide-sm"> <div class="detail-ci-avator"> <img src="//m.sbmmt.com/static/images/user_avatar.jpg" alt="P粉211600174"> <div class="detail-r"> <span class="detail-name">P粉211600174</span> <p class="detail-signal"></p> </div> </div> <div id="js-reply-wrap"> <div id="js-reply-editor-box" class="wd-comment-box js-ci-inner edui-imooc"></div> <div class="qa-ci-footer"> <div class="qa-ci-footright"> <button id="js-wenda-ci-submit" class="detail-btn" data-qid="173334">回复</button> </div> </div> </div> </div> <div id="pinglundeplace" class="allReply ask-reply-all-list comments-content"> <div class="arTop flexRow"> <div class="artLeft flexRow fontBold fontColor1"> 全部回复 <b class="artlb colorGrey">(2)</b> </div> <button class="artBtn ask-comment-answer gbaskcommentanswer">我来回复</button> <button class="artBtn ask-comment-answer gbaskcomment">关闭</button> </div> <div class="allReplayLine"></div> <div class="wdsyConDiv flexRow ask_top_ul"> <img src="//m.sbmmt.com/static/images/user_avatar.jpg" alt="P粉166779363" class="wdcdImg"> <div class="wdcdContent flexColumn"> <div class="wdcdContentReply"> <div class="wdxqrcTop flexRow"> <a href="//m.sbmmt.com/zh/member/1271591.html" target="_blank" class="wdcdcName">P粉166779363<b class="wdxqRcT colorGrey">2023-11-01 11:37:06</b></a> <span class="wdxqrcTopspan colorGrey">2 楼</span> </div> <div class="wdcdcCons"> <p>您似乎正在尝试使用<code>getServerSideProps</code>在显示页面之前执行服务器端渲染和身份验证检查。从您的代码来看,您似乎走在正确的轨道上。</p> <p>但是,我注意到您没有将从<code>getServerSideProps</code>返回的 props 传递给您的<code>Login</code>组件。为了将服务器端属性传递给组件,您需要修改<code>Login</code>函数以接受<code>message</code>属性,如下所示:</p> <pre class="brush:php;toolbar:false;">function Login({ message }) { return ( <Content> <div className="ml-2 my-2"> {message || "NextJS is ok."} <Title text="Login" /> </div> <LoginForm /> </Content> ); }</pre> <p>此外,由于您使用的是<code>getServerSideProps</code>,您的<code>npm run dev</code>命令不会为您的页面生成静态 HTML 文件。相反,页面将根据每个请求生成。因此,如果您想测试<code>getServerSideProps</code>是否正常工作,您需要向浏览器中的页面发出请求,并检查控制台日志以获取<code>console.log( )</code>声明。</p> <p>我希望这有帮助!如果您还有任何其他问题,请告诉我。</p> </div> <div class="wdcdcInfo flexRow"> <a href="javascript:ask_reply_good(257321)"><img class="wdxqindz" src="//m.sbmmt.com/static/images/images/icon27.png"></a> <span class="wdxqindzspan">点赞<b>+0</b></span> <div class="wdcdcileft"> <a href="javascript:;" class="wdcdciSpan reply openreply">添加回复</a> <a href="javascript:;" class="wdcdciSpan reply closereply" style="display:none">关闭回复</a> </div> </div> <div class="wdcdContentReplyss" style="display: none;"> <div class="reply textarea-con"> <div class="replyTop flexRow"> <div class="retLeft flexRow"> <img src="//m.sbmmt.com/static/images/user_avatar.jpg" class="retlAvatar"> <span class="retlName">P粉211600174</span> </div> </div> <textarea class="replaytext colorGrey" id="release-reply" placeholder="写下你的回复"></textarea> <button type="button" class="replayBtn do-reply-btn" data-id="257321">回复</button> </div> </div> <div class="wdcdContentReplyss"> <ul class="replyssul"></ul> </div> </div> </div> </div> <div class="wdsyCondivLine"></div> <div class="wdsyConDiv flexRow ask_top_ul"> <img src="//m.sbmmt.com/static/images/user_avatar.jpg" alt="P粉663883862" class="wdcdImg"> <div class="wdcdContent flexColumn"> <div class="wdcdContentReply"> <div class="wdxqrcTop flexRow"> <a href="//m.sbmmt.com/zh/member/1271723.html" target="_blank" class="wdcdcName">P粉663883862<b class="wdxqRcT colorGrey">2023-11-01 09:35:08</b></a> <span class="wdxqrcTopspan colorGrey">1 楼</span> </div> <div class="wdcdcCons"> <p>因此,正如我在评论中提到的,您应该遵循此<a href="https://nextjs.org/docs/app/building-your-application/data-fetching/fetching" rel="nofollow noreferrer">https://nextjs.org/docs/app/building-your-application/data-fetching/fetching#async-and-await-in-server-components</a>当您使用 Next 13 和<code>app</code>文件夹时。</p> <p>这意味着您可以尝试这样的操作:</p> <pre class="brush:php;toolbar:false;">import { redirect } from 'next/navigation'; import Content from "@/components/content"; import LoginForm from "@/components/loginForm"; import Title from "@/components/title"; async function isLoggedIn() { try { const response = await api.get("/users/session-check", { withCredentials: true, }); if (response.status === 200) return true; } catch (err) { console.log(err.message); } return false; } export default async function Page() { const isLogged = await isLoggedIn(); if (!isLogged) redirect('/'); return ( <Content> <div className="ml-2 my-2"> {"NextJS is ok."} <Title text="Login" /> </div> <LoginForm /> </Content> ); }</pre> <p>当然,您需要添加消息道具。</p> </div> <div class="wdcdcInfo flexRow"> <a href="javascript:ask_reply_good(257320)"><img class="wdxqindz" src="//m.sbmmt.com/static/images/images/icon27.png"></a> <span class="wdxqindzspan">点赞<b>+0</b></span> <div class="wdcdcileft"> <a href="javascript:;" class="wdcdciSpan reply openreply">添加回复</a> <a href="javascript:;" class="wdcdciSpan reply closereply" style="display:none">关闭回复</a> </div> </div> <div class="wdcdContentReplyss" style="display: none;"> <div class="reply textarea-con"> <div class="replyTop flexRow"> <div class="retLeft flexRow"> <img src="//m.sbmmt.com/static/images/user_avatar.jpg" class="retlAvatar"> <span class="retlName">P粉211600174</span> </div> </div> <textarea class="replaytext colorGrey" id="release-reply" placeholder="写下你的回复"></textarea> <button type="button" class="replayBtn do-reply-btn" data-id="257320">回复</button> </div> </div> <div class="wdcdContentReplyss"> <ul class="replyssul"></ul> </div> </div> </div> </div> <div class="wdsyCondivLine"></div> <div></div> </div> </div> <!-- left end --> <div class="phpwzright wdxq"> <a href="javascript:void(0);" onclick="publish_ask('发布话题',1,'zh-cn')"><img src="//m.sbmmt.com/static/images/images/needtiwen.png" class="wdxqrImg"></a> <div class="wzrTwo"> <div class="wzrt-title"> <div> 热门专题 </div> <a href="//m.sbmmt.com/zh/faq/zt">更多></a> </div> <div class="wzrtlist"> <ul> <li><a target="_blank" href="//m.sbmmt.com/zh/faq/azhiddchic" title=""><img src="https://img.php.cn/upload/subject/202407/22/2024072211481944336.jpg?x-oss-process=image/resize,m_fill,h_96,w_156" alt="a5纸多大尺寸"></a><a target="_blank" href="//m.sbmmt.com/zh/faq/azhiddchic" title="" class="title-a-spanl"><span>a5纸多大尺寸</span></a></li> <li><a target="_blank" href="//m.sbmmt.com/zh/faq/baymcxgj" title=""><img src="https://img.php.cn/upload/subject/202407/22/2024072211484853176.jpg?x-oss-process=image/resize,m_fill,h_96,w_156" alt="注册域名查询工具"></a><a target="_blank" href="//m.sbmmt.com/zh/faq/baymcxgj" title="" class="title-a-spanl"><span>注册域名查询工具</span></a></li> <li><a target="_blank" href="//m.sbmmt.com/zh/faq/nohuphdqb" title=""><img src="https://img.php.cn/upload/subject/202407/22/2024072212220695256.jpg?x-oss-process=image/resize,m_fill,h_96,w_156" alt="nohup和&的区别"></a><a target="_blank" href="//m.sbmmt.com/zh/faq/nohuphdqb" title="" class="title-a-spanl"><span>nohup和&的区别</span></a></li> <li><a target="_blank" href="//m.sbmmt.com/zh/faq/cyyzdysjs" title=""><img src="https://img.php.cn/upload/subject/202407/22/2024072212180924627.jpg?x-oss-process=image/resize,m_fill,h_96,w_156" alt="c语言中+=的意思介绍"></a><a target="_blank" href="//m.sbmmt.com/zh/faq/cyyzdysjs" title="" class="title-a-spanl"><span>c语言中+=的意思介绍</span></a></li> </ul> </div> </div> <div class="wzrOne"> <div class="wzroTitle"> <div> 热门文章 </div> </div> <div class="wzroList"> <ul> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a target="_blank" title="Bybit官网地址是哪个?Bybit官网能交易哪些加密货币?" href="//m.sbmmt.com/zh/faq/1796575032.html">Bybit官网地址是哪个?Bybit官网能交易哪些加密货币?</a> </div></li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a target="_blank" title="狗狗币 (DOGE) 价格有望飙升 513%:Meme Coin 分析师强调这些关键看涨指标" href="//m.sbmmt.com/zh/faq/1796577626.html">狗狗币 (DOGE) 价格有望飙升 513%:Meme Coin 分析师强调这些关键看涨指标</a> </div></li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a target="_blank" title="黑神话悟空玄铁征袍铠怎么获得" href="//m.sbmmt.com/zh/faq/1796579827.html">黑神话悟空玄铁征袍铠怎么获得</a> </div></li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a target="_blank" title="黑神话悟空鳞棍亢金怎么获得" href="//m.sbmmt.com/zh/faq/1796579084.html">黑神话悟空鳞棍亢金怎么获得</a> </div></li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a target="_blank" title="《黑神话悟空》第一个结局是什么" href="//m.sbmmt.com/zh/faq/1796580190.html">《黑神话悟空》第一个结局是什么</a> </div></li> </ul> </div> </div> <div class="wzrThree"> <div class="wzrthree-title"> <div> 热门教程 </div> <a target="_blank" href="//m.sbmmt.com/zh/course.html">更多></a> </div> <div class="wzrthreelist swiper2"> <div class="wzrthreeTab swiper-wrapper"> <div class="check tabdiv swiper-slide" data-id="one"> 相关教程 <div></div> </div> <div class="tabdiv swiper-slide" data-id="two"> 热门推荐 <div></div> </div> <div class="tabdiv swiper-slide" data-id="three"> 最新课程 <div></div> </div> </div> <ul class="one"> <li><a target="_blank" href="//m.sbmmt.com/zh/course/812.html" title="" class="wzrthreelaimg"><img src="https://img.php.cn/upload/course/000/000/041/620debc3eab3f377.jpg" alt="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)"></a> <div class="wzrthree-right"> <a target="_blank" title="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)" href="//m.sbmmt.com/zh/course/812.html">最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)</a> <div class="wzrthreerb"> <div> 1396297 <b class="kclbcollectb"></b> </div> <div class="courseICollection" data-id="812"> <b class="nofollow small-nocollect"></b> </div> </div> </div></li> <li><a target="_blank" href="//m.sbmmt.com/zh/course/74.html" title="" class="wzrthreelaimg"><img src="https://img.php.cn/upload/course/000/000/068/6253d1e28ef5c345.png" alt="php入门教程之一周学会PHP"></a> <div class="wzrthree-right"> <a target="_blank" title="php入门教程之一周学会PHP" href="//m.sbmmt.com/zh/course/74.html">php入门教程之一周学会PHP</a> <div class="wzrthreerb"> <div> 4208677 <b class="kclbcollectb"></b> </div> <div class="courseICollection" data-id="74"> <b class="nofollow small-nocollect"></b> </div> </div> </div></li> <li><a target="_blank" href="//m.sbmmt.com/zh/course/286.html" title="" class="wzrthreelaimg"><img src="https://img.php.cn/upload/course/000/000/068/62590a2bacfd9379.png" alt="JAVA 初级入门视频教程"></a> <div class="wzrthree-right"> <a target="_blank" title="JAVA 初级入门视频教程" href="//m.sbmmt.com/zh/course/286.html">JAVA 初级入门视频教程</a> <div class="wzrthreerb"> <div> 2360430 <b class="kclbcollectb"></b> </div> <div class="courseICollection" data-id="286"> <b class="nofollow small-nocollect"></b> </div> </div> </div></li> </ul> <ul class="two" style="display: none;"> <li><a target="_blank" href="//m.sbmmt.com/zh/course/812.html" title="" class="wzrthreelaimg"><img src="https://img.php.cn/upload/course/000/000/041/620debc3eab3f377.jpg" alt="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)"></a> <div class="wzrthree-right"> <a target="_blank" title="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)" href="//m.sbmmt.com/zh/course/812.html">最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)</a> <div class="wzrthreerb"> <div> 1396297 <b class="kclbcollectb"></b> </div> <div class="courseICollection" data-id="812"> <b class="nofollow small-nocollect"></b> </div> </div> </div></li> <li><a target="_blank" href="//m.sbmmt.com/zh/course/286.html" title="" class="wzrthreelaimg"><img src="https://img.php.cn/upload/course/000/000/068/62590a2bacfd9379.png" alt="JAVA 初级入门视频教程"></a> <div class="wzrthree-right"> <a target="_blank" title="JAVA 初级入门视频教程" href="//m.sbmmt.com/zh/course/286.html">JAVA 初级入门视频教程</a> <div class="wzrthreerb"> <div> 2360430 <b class="kclbcollectb"></b> </div> <div class="courseICollection" data-id="286"> <b class="nofollow small-nocollect"></b> </div> </div> </div></li> <li><a target="_blank" href="//m.sbmmt.com/zh/course/504.html" title="" class="wzrthreelaimg"><img src="https://img.php.cn/upload/course/000/000/068/62590a67ce3a6655.png" alt="小甲鱼零基础入门学习Python视频教程"></a> <div class="wzrthree-right"> <a target="_blank" title="小甲鱼零基础入门学习Python视频教程" href="//m.sbmmt.com/zh/course/504.html">小甲鱼零基础入门学习Python视频教程</a> <div class="wzrthreerb"> <div> 493780 <b class="kclbcollectb"></b> </div> <div class="courseICollection" data-id="504"> <b class="nofollow small-nocollect"></b> </div> </div> </div></li> <li><a target="_blank" href="//m.sbmmt.com/zh/course/901.html" title="" class="wzrthreelaimg"><img src="https://img.php.cn/upload/course/000/000/067/64be28a53a4f6310.png" alt="Web前端开发极速入门"></a> <div class="wzrthree-right"> <a target="_blank" title="Web前端开发极速入门" href="//m.sbmmt.com/zh/course/901.html">Web前端开发极速入门</a> <div class="wzrthreerb"> <div> 213575 <b class="kclbcollectb"></b> </div> <div class="courseICollection" data-id="901"> <b class="nofollow small-nocollect"></b> </div> </div> </div></li> <li><a target="_blank" href="//m.sbmmt.com/zh/course/234.html" title="" class="wzrthreelaimg"><img src="https://img.php.cn/upload/course/000/000/068/62611f57ed0d4840.jpg" alt="零基础精通 PS 视频教程"></a> <div class="wzrthree-right"> <a target="_blank" title="零基础精通 PS 视频教程" href="//m.sbmmt.com/zh/course/234.html">零基础精通 PS 视频教程</a> <div class="wzrthreerb"> <div> 845187 <b class="kclbcollectb"></b> </div> <div class="courseICollection" data-id="234"> <b class="nofollow small-nocollect"></b> </div> </div> </div></li> </ul> <ul class="three" style="display: none;"> <li><a target="_blank" href="//m.sbmmt.com/zh/course/1648.html" title="" class="wzrthreelaimg"><img src="https://img.php.cn/upload/course/000/000/067/662b5d34ba7c0227.png" alt="【web前端】Node.js快速入门"></a> <div class="wzrthree-right"> <a target="_blank" title="【web前端】Node.js快速入门" href="//m.sbmmt.com/zh/course/1648.html">【web前端】Node.js快速入门</a> <div class="wzrthreerb"> <div> 3324 <b class="kclbcollectb"></b> </div> <div class="courseICollection" data-id="1648"> <b class="nofollow small-nocollect"></b> </div> </div> </div></li> <li><a target="_blank" href="//m.sbmmt.com/zh/course/1647.html" title="" class="wzrthreelaimg"><img src="https://img.php.cn/upload/course/000/000/067/6628cc96e310c937.png" alt="国外Web开发全栈课程全集"></a> <div class="wzrthree-right"> <a target="_blank" title="国外Web开发全栈课程全集" href="//m.sbmmt.com/zh/course/1647.html">国外Web开发全栈课程全集</a> <div class="wzrthreerb"> <div> 2673 <b class="kclbcollectb"></b> </div> <div class="courseICollection" data-id="1647"> <b class="nofollow small-nocollect"></b> </div> </div> </div></li> <li><a target="_blank" href="//m.sbmmt.com/zh/course/1646.html" title="" class="wzrthreelaimg"><img src="https://img.php.cn/upload/course/000/000/067/662221173504a436.png" alt="Go语言实战之 GraphQL"></a> <div class="wzrthree-right"> <a target="_blank" title="Go语言实战之 GraphQL" href="//m.sbmmt.com/zh/course/1646.html">Go语言实战之 GraphQL</a> <div class="wzrthreerb"> <div> 2104 <b class="kclbcollectb"></b> </div> <div class="courseICollection" data-id="1646"> <b class="nofollow small-nocollect"></b> </div> </div> </div></li> <li><a target="_blank" href="//m.sbmmt.com/zh/course/1645.html" title="" class="wzrthreelaimg"><img src="https://img.php.cn/upload/course/000/000/067/662077e163124646.png" alt="550W粉丝大佬手把手从零学JavaScript"></a> <div class="wzrthree-right"> <a target="_blank" title="550W粉丝大佬手把手从零学JavaScript" href="//m.sbmmt.com/zh/course/1645.html">550W粉丝大佬手把手从零学JavaScript</a> <div class="wzrthreerb"> <div> 478 <b class="kclbcollectb"></b> </div> <div class="courseICollection" data-id="1645"> <b class="nofollow small-nocollect"></b> </div> </div> </div></li> <li><a target="_blank" href="//m.sbmmt.com/zh/course/1644.html" title="" class="wzrthreelaimg"><img src="https://img.php.cn/upload/course/000/000/067/6616418ca80b8916.png" alt="python大神Mosh,零基础小白6小时完全入门"></a> <div class="wzrthree-right"> <a target="_blank" title="python大神Mosh,零基础小白6小时完全入门" href="//m.sbmmt.com/zh/course/1644.html">python大神Mosh,零基础小白6小时完全入门</a> <div class="wzrthreerb"> <div> 11540 <b class="kclbcollectb"></b> </div> <div class="courseICollection" data-id="1644"> <b class="nofollow small-nocollect"></b> </div> </div> </div></li> </ul> </div> </div> <div class="wzrFour"> <div class="wzrfour-title"> <div> 最新下载 </div> <a href="//m.sbmmt.com/zh/xiazai">更多></a> </div> <div class="wzrfourList swiper3"> <div class="wzrfourlTab swiper-wrapper"> <div class="check swiper-slide" data-id="onef"> 网站特效 <div></div> </div> <div class="swiper-slide" data-id="twof"> 网站源码 <div></div> </div> <div class="swiper-slide" data-id="threef"> 网站素材 <div></div> </div> <div class="swiper-slide" data-id="fourf"> 前端模板 <div></div> </div> </div> <ul class="onef"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="[表单按钮] jQuery企业留言表单联系代码" href="//m.sbmmt.com/zh/xiazai/js/8071">[表单按钮] jQuery企业留言表单联系代码</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="[播放器特效] HTML5 MP3音乐盒播放特效" href="//m.sbmmt.com/zh/xiazai/js/8070">[播放器特效] HTML5 MP3音乐盒播放特效</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="[菜单导航] HTML5炫酷粒子动画导航菜单特效" href="//m.sbmmt.com/zh/xiazai/js/8069">[菜单导航] HTML5炫酷粒子动画导航菜单特效</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="[表单按钮] jQuery可视化表单拖拽编辑代码" href="//m.sbmmt.com/zh/xiazai/js/8068">[表单按钮] jQuery可视化表单拖拽编辑代码</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="[播放器特效] VUE.JS仿酷狗音乐播放器代码" href="//m.sbmmt.com/zh/xiazai/js/8067">[播放器特效] VUE.JS仿酷狗音乐播放器代码</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="[html5特效] 经典html5推箱子小游戏" href="//m.sbmmt.com/zh/xiazai/js/8066">[html5特效] 经典html5推箱子小游戏</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="[图片特效] jQuery滚动添加或减少图片特效" href="//m.sbmmt.com/zh/xiazai/js/8065">[图片特效] jQuery滚动添加或减少图片特效</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="[相册特效] CSS3个人相册封面悬停放大特效" href="//m.sbmmt.com/zh/xiazai/js/8064">[相册特效] CSS3个人相册封面悬停放大特效</a> </div></li> </ul> <ul class="twof" style="display:none"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/code/7647" title="[Bootstrap模板] 有机果蔬供应商网页模板 Bootstrap5" target="_blank">[Bootstrap模板] 有机果蔬供应商网页模板 Bootstrap5</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/code/7646" title="[后端模板] Bootstrap3多功能数据信息后台管理响应式网页模板-Novus" target="_blank">[后端模板] Bootstrap3多功能数据信息后台管理响应式网页模板-Novus</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/code/7645" title="[Bootstrap模板] 房产资源服务平台网页模板 Bootstrap5" target="_blank">[Bootstrap模板] 房产资源服务平台网页模板 Bootstrap5</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/code/7644" title="[Bootstrap模板] 简约简历资料网页模板 Bootstrap4" target="_blank">[Bootstrap模板] 简约简历资料网页模板 Bootstrap4</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/code/7639" title="[Bootstrap模板] bootstrap响应式宽屏图书教育网站模板-DREAMLIFE" target="_blank">[Bootstrap模板] bootstrap响应式宽屏图书教育网站模板-DREAMLIFE</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/code/7634" title="[后端模板] MAC风格响应式蓝色企业CMS后台管理系统模版" target="_blank">[后端模板] MAC风格响应式蓝色企业CMS后台管理系统模版</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/code/7632" title="[后端模板] 响应式渐变大气后台管理系统网站模板-usinessbox" target="_blank">[后端模板] 响应式渐变大气后台管理系统网站模板-usinessbox</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/code/7629" title="[Bootstrap模板] 响应式蔬菜水果商店网站模板-Organio" target="_blank">[Bootstrap模板] 响应式蔬菜水果商店网站模板-Organio</a> </div></li> </ul> <ul class="threef" style="display:none"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/sucai/3078" target="_blank" title="[PNG素材] 可爱的夏天元素矢量素材(EPS+PNG)">[PNG素材] 可爱的夏天元素矢量素材(EPS+PNG)</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/sucai/3077" target="_blank" title="[PNG素材] 四个红的的 2023 毕业徽章矢量素材(AI+EPS+PNG)">[PNG素材] 四个红的的 2023 毕业徽章矢量素材(AI+EPS+PNG)</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/sucai/3076" target="_blank" title="[banner图] 唱歌的小鸟和装满花朵的推车设计春天banner矢量素材(AI+EPS)">[banner图] 唱歌的小鸟和装满花朵的推车设计春天banner矢量素材(AI+EPS)</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/sucai/3075" target="_blank" title="[PNG素材] 金色的毕业帽矢量素材(EPS+PNG)">[PNG素材] 金色的毕业帽矢量素材(EPS+PNG)</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/sucai/3074" target="_blank" title="[PNG素材] 黑白风格的山脉图标矢量素材(EPS+PNG)">[PNG素材] 黑白风格的山脉图标矢量素材(EPS+PNG)</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/sucai/3073" target="_blank" title="[PNG素材] 不同颜色披风和不同姿势的超级英雄剪影矢量素材(EPS+PNG)">[PNG素材] 不同颜色披风和不同姿势的超级英雄剪影矢量素材(EPS+PNG)</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/sucai/3072" target="_blank" title="[banner图] 扁平风格的植树节banner矢量素材(AI+EPS)">[banner图] 扁平风格的植树节banner矢量素材(AI+EPS)</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/sucai/3071" target="_blank" title="[PNG素材] 九个漫画风格的爆炸聊天气泡矢量素材(EPS+PNG)">[PNG素材] 九个漫画风格的爆炸聊天气泡矢量素材(EPS+PNG)</a> </div></li> </ul> <ul class="fourf" style="display:none"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/code/8328" target="_blank" title="[前端模板] 家居装潢清洁维修服务公司网站模板">[前端模板] 家居装潢清洁维修服务公司网站模板</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/code/8327" target="_blank" title="[前端模板] 清新配色个人求职简历引导页模板">[前端模板] 清新配色个人求职简历引导页模板</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/code/8326" target="_blank" title="[前端模板] 设计师创意求职简历网页模板">[前端模板] 设计师创意求职简历网页模板</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/code/8325" target="_blank" title="[前端模板] 现代工程建筑公司网站模板">[前端模板] 现代工程建筑公司网站模板</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/code/8324" target="_blank" title="[前端模板] 教育服务机构响应式HTML5模板">[前端模板] 教育服务机构响应式HTML5模板</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/code/8323" target="_blank" title="[前端模板] 网上电子书店商城网站模板">[前端模板] 网上电子书店商城网站模板</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/code/8322" target="_blank" title="[前端模板] IT技术解决互联网公司网站模板">[前端模板] IT技术解决互联网公司网站模板</a> </div></li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="//m.sbmmt.com/zh/xiazai/code/8321" target="_blank" title="[前端模板] 紫色风格外汇交易服务网站模板">[前端模板] 紫色风格外汇交易服务网站模板</a> </div></li> </ul> </div> </div> </div> </div> </div> <div class="phpFoot"> <div class="phpFootIn"> <div class="phpFootCont"> <div class="phpFootLeft"> <dl> <dt> <a href="//m.sbmmt.com/zh/about/us.html" rel="nofollow" target="_blank" title="关于我们" class="cBlack">关于我们</a> <a href="//m.sbmmt.com/zh/about/disclaimer.html" rel="nofollow" target="_blank" title="免责声明" class="cBlack">免责声明</a> <a href="//m.sbmmt.com/zh/update/article_0_1.html" target="_blank" title="Sitemap" class="cBlack">Sitemap</a> <div class="clear"></div> </dt> <dd class="cont1"> PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长! </dd> </dl> </div> </div> </div> </div> <input type="hidden" id="verifycode" value="/captcha.html"> </body> </html>