国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Table of Contents
Install
pages concept
Dynamic page
Blog API, Includes, Layouts, Homepage, Blog Page, Production Environment Deployment, Improvement Suggestions
Home Web Front-end CSS Tutorial Building a Blog with Next.js

Building a Blog with Next.js

Apr 04, 2025 am 10:29 AM

Building a Blog with Next.js

This article will guide you to build a static blog framework using Next.js, with design and structure inspired by Jekyll. Jekyll is known for its ease of access and high controllability, and this article aims to take advantage of Next.js and React to provide a new static blog building solution. Next.js is based on the file system and simplifies the construction process of static websites.

A typical Jekyll blog directory structure is as follows:

 <code>. ├─── _posts/      ...Markdown 格式的博文├─── _layouts/     ...不同頁面的布局├─── _includes/    ...可復(fù)用的組件├─── index.md     ...主頁└─── config.yml    ...博客配置</code>

Our framework will follow this directory structure as much as possible to facilitate migration of blogs from Jekyll, simply reuse posts and configurations.

If you are not familiar with Jekyll, it is a static site generator that converts plain text into static websites and blogs. Please refer to the Jekyll Quick Start Guide for details.

This article assumes that you have the basics of React. If not, refer to the React Getting Started Guide.

Install

Next.js is based on React and written in Node.js. Therefore, you need to install npm before adding Next.js, React, and React-DOM.

 <code>mkdir nextjs-blog && cd $_ npm init -y npm install next react react-dom --save</code>

In order to run the Next.js script on the command line, we need to add the next command to the scripts section of package.json.

 <code>"scripts": { "dev": "next" }</code>

Now, run the npm run dev command for the first time and see what happens.

 <code>$ npm run dev > [email protected] dev /~user/nextjs-blog > next ready - started server on http://m.miracleart.cn/link/4a914e5c38172ae9b61780ffbd0b2f90 Error: > Couldn't find a `pages` directory. Please create one under the project root</code>

The compiler prompts that the pages directory under the project root directory is missing. We will learn about the concept of pages in the next section.

pages concept

Next.js is built based on the pages concept. Each page is a React component (.js or .jsx) that is mapped to the route based on the file name. For example:

<code>               路由----               ----- /pages/about.js         /about /pages/projects/work1.js     /projects/work1 /pages/index.js         /</code>

Let's create the pages directory in the project root directory and populate the first page index.js with the basic React component.

 <code>// pages/index.js export default function Blog() { return</code> Welcome to Next.js blog
}

Run npm run dev again to start the server and visit http://m.miracleart.cn/link/4a914e5c38172ae9b61780ffbd0b2f90 in your browser to view your blog.

Out of the box, we get:

  • Hot reload, no need to refresh the browser for every code change.
  • /pages/** Static generation of all pages in the directory.
  • /public/** static file service for resources in the directory.
  • 404 Error page.

Visit any path on localhost to see the actual effect of the 404 page. If you need to customize the 404 page, please refer to the Next.js documentation.

Dynamic page

Static routing pages are used to build home pages, about pages, etc. However, in order to build all blog posts dynamically, we will use Next.js' dynamic routing functionality. For example:

<code>             路由----             ----- /pages/posts/[slug].js    /posts/1              /posts/abc              /posts/hello-world</code>

Any routes, such as /posts/1, /posts/abc, etc., will match /posts/[slug].js, and the slug parameter will be sent to the page as a query parameter. This is especially useful for our blog posts, because we don't want to create a file for each blog post; instead, we can dynamically pass slugs to render the corresponding blog post.

(The following content is omitted. Because the length of the article is too long, the original text will remain unchanged, and the remaining parts will be simplified and the pictures will be retained)

Blog API, Includes, Layouts, Homepage, Blog Page, Production Environment Deployment, Improvement Suggestions

The subsequent part of the article details how to build a blog API (get all blog posts, get individual blog posts, and configure parsing), create reusable components (Includes), design page layout (Layouts), implement homepage blog post lists and individual blog post pages, as well as the final production environment deployment and some improvement suggestions, such as pagination, syntax highlighting, article classification labels and style beautification, etc. The implementation details of these parts are based on the features and functionality of Next.js and make full use of its static site generation capabilities.

The above is the detailed content of Building a Blog with Next.js. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What is 'render-blocking CSS'? What is 'render-blocking CSS'? Jun 24, 2025 am 12:42 AM

CSS blocks page rendering because browsers view inline and external CSS as key resources by default, especially with imported stylesheets, header large amounts of inline CSS, and unoptimized media query styles. 1. Extract critical CSS and embed it into HTML; 2. Delay loading non-critical CSS through JavaScript; 3. Use media attributes to optimize loading such as print styles; 4. Compress and merge CSS to reduce requests. It is recommended to use tools to extract key CSS, combine rel="preload" asynchronous loading, and use media delayed loading reasonably to avoid excessive splitting and complex script control.

How to use Lotties in Figma How to use Lotties in Figma Jun 14, 2025 am 10:17 AM

In the following tutorial, I will show you how to create Lottie animations in Figma. We'll use two colorful designs to exmplify how you can animate in Figma, and then I'll show you how to go from Figma to Lottie animations. All you need is a free Fig

External vs. Internal CSS: What's the Best Approach? External vs. Internal CSS: What's the Best Approach? Jun 20, 2025 am 12:45 AM

ThebestapproachforCSSdependsontheproject'sspecificneeds.Forlargerprojects,externalCSSisbetterduetomaintainabilityandreusability;forsmallerprojectsorsingle-pageapplications,internalCSSmightbemoresuitable.It'scrucialtobalanceprojectsize,performanceneed

Does my CSS must be on lower case? Does my CSS must be on lower case? Jun 19, 2025 am 12:29 AM

No,CSSdoesnothavetobeinlowercase.However,usinglowercaseisrecommendedfor:1)Consistencyandreadability,2)Avoidingerrorsinrelatedtechnologies,3)Potentialperformancebenefits,and4)Improvedcollaborationwithinteams.

CSS Case Sensitivity: Understanding What Matters CSS Case Sensitivity: Understanding What Matters Jun 20, 2025 am 12:09 AM

CSSismostlycase-insensitive,butURLsandfontfamilynamesarecase-sensitive.1)Propertiesandvalueslikecolor:red;arenotcase-sensitive.2)URLsmustmatchtheserver'scase,e.g.,/images/Logo.png.3)Fontfamilynameslike'OpenSans'mustbeexact.

What is Autoprefixer and how does it work? What is Autoprefixer and how does it work? Jul 02, 2025 am 01:15 AM

Autoprefixer is a tool that automatically adds vendor prefixes to CSS attributes based on the target browser scope. 1. It solves the problem of manually maintaining prefixes with errors; 2. Work through the PostCSS plug-in form, parse CSS, analyze attributes that need to be prefixed, and generate code according to configuration; 3. The usage steps include installing plug-ins, setting browserslist, and enabling them in the build process; 4. Notes include not manually adding prefixes, keeping configuration updates, prefixes not all attributes, and it is recommended to use them with the preprocessor.

What are CSS counters? What are CSS counters? Jun 19, 2025 am 12:34 AM

CSScounterscanautomaticallynumbersectionsandlists.1)Usecounter-resettoinitialize,counter-incrementtoincrease,andcounter()orcounters()todisplayvalues.2)CombinewithJavaScriptfordynamiccontenttoensureaccurateupdates.

CSS: When Does Case Matter (and When Doesn't)? CSS: When Does Case Matter (and When Doesn't)? Jun 19, 2025 am 12:27 AM

In CSS, selector and attribute names are case-sensitive, while values, named colors, URLs, and custom attributes are case-sensitive. 1. The selector and attribute names are case-insensitive, such as background-color and background-Color are the same. 2. The hexadecimal color in the value is case-sensitive, but the named color is case-sensitive, such as red and Red is invalid. 3. URLs are case sensitive and may cause file loading problems. 4. Custom properties (variables) are case sensitive, and you need to pay attention to the consistency of case when using them.

See all articles