Next.js 实战开发入门教程敏捷开发框架
<p>在上一篇文章中,我们已经成功实现了网站的导航栏。接下来,我们将继续开发网页的主体部分,用于展示我们的网站业务情况。</p><h2>主页内容展示</h2>
<p>首先,我们需要创建一个名为 <code>/app/components/Main.tsx</code> 的文件,作为主页内容的入口。然后在根目录的 <code>/app/page.tsx</code> 中引入这个组件,这样在访问主页时就能看到我们编辑的内容。</p>
<h3>页面结构</h3>
<p>主页的内容分为以下几个部分:</p>
<ol>
<li>
<p><strong>主题展示</strong></p>
</li>
<li>
<p><strong>查询可用子域名</strong></p>
</li>
<li>
<p><strong>用户的DNS管理面板</strong></p>
</li>
<li>
<p><strong>产品介绍模块</strong></p>
</li>
<li>
<p><strong>客户介绍模块</strong></p>
</li>
<li>
<p><strong>订阅模块</strong></p>
</li>
</ol>
<p>为了实现上述需求,我们首先需要在 <code>/app/components/Main.tsx</code> 中创建一个弹性的容器,并设置主轴方向为垂直方向。这样可以使子元素在交叉轴(水平方向)上居中对齐,并且占满父容器的宽度。这样的布局方式可以确保每个子模块垂直排列,并且宽度一致。</p>
<h3>代码实现</h3>
<p>以下是 <code>/app/components/Main.tsx</code> 的初始代码:</p>
<div class="md-code-block">
<div class="md-code-block-banner-wrap">
<div class="md-code-block-banner">
<div class="md-code-block-infostring">tsx</div>
<div class="md-code-block-action">
<div class="ds-markdown-code-copy-button">复制</div>
</div>
</div>
</div>
<pre><span class="token tag"><span class="token tag"><span class="token punctuation"><section <span class="token attr-name">className<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"w-full max-w-7xl mx-auto px-5 py-24 pt-32<span class="token punctuation">"<span class="token punctuation">><span class="token plain-text">
<span class="token tag"><span class="token tag"><span class="token punctuation"><div <span class="token attr-name">className<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"flex flex-col md:flex-row items-center<span class="token punctuation">"<span class="token punctuation">><span class="token plain-text">
<span class="token tag"><span class="token tag"><span class="token punctuation"><div <span class="token attr-name">className<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"md:w-1/2 md:pr-16 flex flex-col items-center md:items-start text-center md:text-left mb-16 md:mb-0<span class="token punctuation">"<span class="token punctuation">><span class="token plain-text">
<span class="token tag"><span class="token tag"><span class="token punctuation"><h1 <span class="token attr-name">className<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"italic text-4xl mt-4 sm:text-5xl md:text-6xl font-bold text-gray-900 mb-4<span class="token punctuation">"<span class="token punctuation">><span class="token plain-text">
100% Free Domain Name Provider
<span class="token tag"><span class="token tag"><span class="token punctuation"></h1<span class="token punctuation">><span class="token plain-text">
<span class="token tag"><span class="token tag"><span class="token punctuation"><p <span class="token attr-name">className<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"mb-8 text-lg text-gray-600<span class="token punctuation">"<span class="token punctuation">><span class="token plain-text">
Our mission is to empower individuals worldwide to grow their
digital presence and contribute to the global digital economy. Our
free domains function identically to any paid domain, allowing you
to create websites, blogs, email accounts, and more. You have the
flexibility to use these domains directly or with URL forwarding,
giving you full control over your online identity – all at no
cost.
<span class="token tag"><span class="token tag"><span class="token punctuation"></p<span class="token punctuation">><span class="token plain-text">
<span class="token tag"><span class="token tag"><span class="token punctuation"><<span class="token class-name">Link
<span class="token attr-name">href<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"/login<span class="token punctuation">"
<span class="token attr-name">className<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"inline-flex items-center px-6 py-3 text-white bg-blue-600 rounded-md hover:bg-blue-700 transition duration-300<span class="token punctuation">"
<span class="token punctuation">><span class="token plain-text">
Try it now
<span class="token tag"><span class="token tag"><span class="token punctuation"><svg
<span class="token attr-name">xmlns<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"http://www.w3.org/2000/svg<span class="token punctuation">"
<span class="token attr-name">className<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"h-5 w-5 ml-2<span class="token punctuation">"
<span class="token attr-name">viewBox<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"0 0 20 20<span class="token punctuation">"
<span class="token attr-name">fill<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"currentColor<span class="token punctuation">"
<span class="token punctuation">><span class="token plain-text">
<span class="token tag"><span class="token tag"><span class="token punctuation"><path
<span class="token attr-name">fillRule<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"evenodd<span class="token punctuation">"
<span class="token attr-name">d<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"M10.293 3.293a1 1 0 011.414 0l6 6a1 1 0 010 1.414l-6 6a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-4.293-4.293a1 1 0 010-1.414z<span class="token punctuation">"
<span class="token attr-name">clipRule<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"evenodd<span class="token punctuation">"
<span class="token punctuation">/><span class="token plain-text">
<span class="token tag"><span class="token tag"><span class="token punctuation"></svg<span class="token punctuation">><span class="token plain-text">
<span class="token tag"><span class="token tag"><span class="token punctuation"></<span class="token class-name">Link<span class="token punctuation">><span class="token plain-text">
<span class="token tag"><span class="token tag"><span class="token punctuation"></div<span class="token punctuation">><span class="token plain-text">
<span class="token tag"><span class="token tag"><span class="token punctuation"><div <span class="token attr-name">className<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"md:w-1/2<span class="token punctuation">"<span class="token punctuation">><span class="token plain-text">
<span class="token tag"><span class="token tag"><span class="token punctuation"><<span class="token class-name">Image
<span class="token attr-name">src<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"/what_is_a_dns_server_dns_lookup.png<span class="token punctuation">"
<span class="token attr-name">alt<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"DNS Illustration<span class="token punctuation">"
<span class="token attr-name">width<span class="token script language-javascript"><span class="token script-punctuation punctuation">=<span class="token punctuation">{<span class="token number">500<span class="token punctuation">}
<span class="token attr-name">height<span class="token script language-javascript"><span class="token script-punctuation punctuation">=<span class="token punctuation">{<span class="token number">500<span class="token punctuation">}
<span class="token attr-name">className<span class="token attr-value"><span class="token punctuation attr-equals">=<span class="token punctuation">"w-full max-w-lg mx-auto<span class="token punctuation">"
<span class="token punctuation">/><span class="token plain-text">
<span class="token tag"><span class="token tag"><span class="token punctuation"></div<span class="token punctuation">><span class="token plain-text">
<span class="token tag"><span class="token tag"><span class="token punctuation"></div<span class="token punctuation">><span class="token plain-text">
<span class="token tag"><span class="token tag"><span class="token punctuation"></section<span class="token punctuation">></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></pre>
</div>
<h3>效果展示</h3>
<p>通过上述代码,我们实现了一个主题展示的模块。该模块包含一个标题、一段描述性文字和一个按钮,用户点击按钮后可以导航到登录页面。此外,我们还添加了一张图片,用于增强页面的视觉效果。</p>
<p><img src="https://pic.dataeast.cn/picture/20241107214400.png"></p>
<h3>下一步计划</h3>
<p>在接下来的文章中,我们将继续实现“查询可用子域名”功能,并学习如何使用事件处理器(Event Handlers)来响应用户的操作。敬请期待!</p>
<h3>更多资源</h3>
<p>如果您喜欢这篇文章,欢迎访问我的技术博客获取更多详细内容:</p>
<ul>
<li>
<p><strong>独立博客</strong>: https://www.dataeast.cn/</p>
</li>
<li>
<p><strong>CSDN博客</strong>: https://blog.csdn.net/siberiaWarpDrive</p>
</li>
<li>
<p><strong>B站视频空间</strong>: https://space.bilibili.com/25871614</p>
</li>
<li>
<p><strong>微信公众号</strong>: 关注 “曲速引擎 Warp Drive”</p>
</li>
</ul>
<p><img src="https://pic.dataeast.cn/picture/20241016170749.png"></p>
<p>通过这些平台,您可以获取更多关于Next.js实战开发的详细教程和最新动态。感谢您的支持!</p><br><br>
来源:https://www.cnblogs.com/XiaoH160309/p/18534087
頁:
[1]