了解与学习 Next,web可视化开发工具

58 阅读6分钟

HTTP

  • HTTP 报文结构是怎样的?

  • HTTP有哪些请求方法?

  • GET 和 POST 有什么区别?

  • 如何理解 URI?

  • 如何理解 HTTP 状态码?

  • 简要概括一下 HTTP 的特点?HTTP 有哪些缺点?

  • 对 Accept 系列字段了解多少?

  • 对于定长和不定长的数据,HTTP 是怎么传输的?

  • HTTP 如何处理大文件的传输?

  • HTTP 中如何处理表单数据的提交?

  • HTTP1.1 如何解决 HTTP 的队头阻塞问题?

  • 对 Cookie 了解多少?

  • 如何理解 HTTP 代理?

  • 如何理解 HTTP 缓存及缓存代理?

  • 为什么产生代理缓存?

  • 源服务器的缓存控制

  • 客户端的缓存控制

  • 什么是跨域?浏览器如何拦截响应?如何解决?

开源分享:docs.qq.com/doc/DSmRnRG…

  1. 支持两种预渲染方式,静态生成和服务器端渲染

  2. 基于页面的路由系统,路由零配置

  3. 自动代码拆分,优化页面加载速度

  4. 支持静态到处,可将应用导出为静态网站

  5. 内置 CSS-in-JS 库 styled-jsx

  6. 方案成熟,可用于生产环境,世界许多公司都在使用

  7. 应用部署简单,拥有专属部署环境 Vercel,也可以部署在其他环境

创建 Next.js 项目

=======================================================================

  • 创建: npm init next-app 项目名

  • 运行: npm run dev

  • 访问: localhost:3000

  • 临时安装 create-next-app 用于创建 Next.js 项目

基于页面的路由系统

===================================================================

创建页面

  • 在 Next.js 中,页面是被放置在 pages 文件夹中的 React 组件

  • 组件需要被默认导出

  • 组件文件中不需要引入 React

  • 页面地址与文件地址是对应的关系

  • 创建页面

// pages/list.js

export default function List () {

return

List page works

}

  • 文件位置: pages/index.js

  • 访问地址:localhost:3000/

  • 文件位置: pages/list.js

  • 访问地址:localhost:3000/list

  • 文件位置: pages/post/first.js

  • 访问地址:localhost:3000/post/first

页面跳转

  • Link 组件默认使用 JS 进行页面跳转。即 SPA 形式的跳转

  • 如果浏览器中 JS 被禁用,则使用链接跳转

  • Link 组件中不应添加除 href 属性以外的属性,其余属性添加到 a 标签上

  • Link 组件通过预取(在生产中)功能自动优化应用程序已获得最佳性能

import Link from 'next/link'

list page

静态资源、元数据、CSS

======================================================================

访问静态资源


应用程序根目录中的 public 文件夹用于提供静态资源

  • 通过以下形式进行访问

  • public/images/i.jpg —> /images/1.jpg

  • public/css/base.css —> /css/base.css

修改页面元数据


  • 通过 Head 组件修改元数据

// pages/index.js

import Head from 'next/head'

export default function Home() {

return (<>

index page
index page works

</>)

}

// pages/index.js

import Head from 'next/head'

export default function List () {

return (<>

list page
List page works

</>)

}

CSS 样式


内置 styled-jsx

在 Next.js 中内置了 styled-jsx,它是一个 CSS-in-JS 库,允许在 React 组件中编写 CSS,CSS 仅作用于组件内部

// pages/index.js

export default function Home() {

return (<>

index page works

{` div { color: red; } `}

</>)

}

CSS 模块

  • 通过使用 CSS 模块功能,允许将组建的 CSS 样式编写在单独的 CSS 文件中。

  • CSS 模块约定样式文件的名称必须为 “组件文件名称.module.css”

// pages/list.js

import styles from './list.module.css'

export default function List () {

return (

List page works
)

}

全局样式文件

  1. 在 pages 文件夹中新建 _app.js 文件,并加入如下代码

  2. 在项目根目录下创建 styles 文件夹,并在其中创建 global.css

  3. 在 _app.js 中通过 import 引入 global.css

  4. 重新启动开发服务器

// pages/_app.js

import '../styles/globals.css'

function MyApp({ Component, pageProps }) {

return <Component {...pageProps} />

}

export default MyApp

// styles/global.css

body {

background-color: pink;

}

预渲染

=============================================================

  • 预渲染是指数据和 HTML 的拼接在服务器端提前完成

  • 预渲染可以使 SEO 更加友好

  • 预渲染会带来更好的用户体验,可以无需运行 JS 即可查看应用程序 UI

预渲染的两种形式


在 Next.js 中支持两种形式的预渲染:静态生成和服务端渲染

  • 静态生成和服务端渲染是生成 HTML 的时机不同

  • 静态生成:静态生成是在构建时生成 HTML,以后的每个请求都公用构建时生成好的 HTML

  • 服务端渲染:服务端渲染是在请求时生成 HTML,每个请求都会重新生成 HTML

两种方式的选择


  • Next.js 允许开发者为每个页面选择不同的与渲染方式,不同的预渲染方式拥有不同的特点,应根据常见进行渲染,但建议大多数页面使用静态生成

  • 静态生成页面以此构建反腐使用,访问速度快,因为页面都是事先生成好的

  • 适用场景:

  • 营销页面、博客文章、电子商务产品列表、帮助和文档

  • 服务端渲染访问速度不如静态生成块,但是由于每次请求都会重新渲染,所以适用数据频繁更新的页面或页面内容随请求变化而变化的页面

实现静态生成


  • 无数据和有数据的静态生成

  • 如果组件不需要在其他地方获取数据,直接进行静态生成

  • 如果组件需要在其他地方获取数据,在构建时 Next.js 会预先获取组件需要的数据,然后再对组件进行静态生成

静态生成 getStaticProps

  • getStaticProps 方法的作用是获取组件静态生成需要的数据,并通过 props 的方式将数据传递给组件

  • 该方法是一个异步函数,需要在组件内部进行导出

  • 在发开模式下,getStaticProps 改为在每个请求上运行

export async function getStaticProps () {

// 从文件系统,API,数据库中获取的数据

const data = ...

// props 属性的值将会传递给组件

return {

props: ...

}

}

基础学习:

前端最基础的就是 HTML , CSS 和 JavaScript 。

网页设计:HTML和CSS基础知识的学习

HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

CSS样式是表现。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。

动态交互:JavaScript基础的学习

JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。