web基础学习

1、安装

1.1、创建一个 React 新项目

如果你正在学习 React 或者考虑将其应用到现有的项目中,你可以 利用 script 标签将 React 添加到任何 HTML 页面 来快速开启学习之旅。如果你的项目需要许多组件和许多文件,那就需要考虑以下方式了!

1.2、选择你自己的冒险方式

React 是一个工具库,帮你以组件的方式拆解并组织 UI 代码。React 不负责路由(routing)或数据管理。对于这些功能,你需要使用第三方工具库或实现你自己的解决方案。这意味着创建一个新的 React 项目有多种方式可以选择:使用 最小设置的工具链, 根据需要为项目添加功能。使用 功能完备的框架,常用功能都已内置。无论你是刚入门,想要构建一个大项目,还是想要建立自己的工具链,本指南都能为你指明道路。

1.3、React 工具链入门

如果你是刚刚开始接触 React,我们建议你使用 Create React App,这是尝试 React 功能的最流行的方式,也是构建新的单页客户端应用的最好方法。Create React App 是一个专为 React 配置的功能齐备的工具链。工具链有助于:

创建大量的文件和组件

使用来自 npm 的第三方工具库

及早检测到常见错误

开发时能实时编辑 CSS 和 JS

针对生产环境优化输出的文件

你仅需一条命令就可以在终端(命令行)中利用 Create React App 创建一个新项目!(前提是确保安装了 Node.js!

npx create-react-app my-app

现在就可以通过以下命令运行你的应用程序了:

cd my-app
npm start

欲了解更多信息,请 [查看官方指南(https://create-react-app.dev/docs/getting-started)。

Create React App 并不处理后端逻辑或数据库操作,它只是创建了一个针对前端的构建管道。这意味着你可以为其对接任何后端。但是,如果你寻找的是对类似路由(routing)以及服务器端业务逻辑功能的支持的话,请接着往下看!

1.4、同时使用 React 和框架

如果你希望创建一个更大的、可用于生产环境的项目的话,Next.js 是一个非常好的起点。Next.js 是一个流行的、基于 React 构建的轻量级框架,用于构建静态和服务器端渲染的应用程序。该框架自带了路由(routing)、样式表( styling)和服务器端渲染(server-side rendering)等功能,可以让你的项目快速开始并运行起来。

请查看 Next.js 的官方指导:使用 Next.js 构建项目 。

1.5、其他选项

Gatsby 能帮你基于 React 和 GraphQL 生成静态网站。

Razzle 是一个支持服务器端渲染(server-rendering)的框架,无需任何配置,但比 Next.js 提供了更多的灵活性。

1.6、自定义工具链

你可能更喜欢创建并配置自己的工具链。一个 JavaScript 构建工具链通常包含以下部分:

一个 软件包管理器—用于安装、更新和管理第三方软件包。Yarn 和 npm 就是两个比较流行的软件包管理器。

一个 打包工具(bundler)—将您编写的模块化代码打成小包以优化加载时间。Webpack、Snowpack、Parcel 就是几个比较流行的打包工具。

一个 编译器—将你使用新语法编写的 JavaScript 代码转换成能被老版本的浏览器执行的代码。Babel 就是这类工具中的一个代表。

在较大的项目中,你可能还需要一个工具来管理单一仓库中的多个软件包。Nx 就是此类工具中的一个代表。

如果你喜欢葱头开始创建自己的 JavaScript 工具链的话,请 查看这份指南 来了解如何自行实现 Create React App 中的功能。

2、为网站添加 React

React 从一开始就被设计为支持渐进式采用,你可以根据需要或多或少地使用 React。无论是微前端(micro-frontends)、现有系统,还是只是尝试一下 React,都可以通过添加几行代码就能为页面添加交互式的 React 组件,并且无需使用构建工具!

2.1、第一步:在页面中添加一个 HTML 元素

在要编辑的 HTML 页面中添加一个 HTML 元素,例如带有唯一 id 属性的空的 <div> 标签,该标签用于 React 定位内容显示的位置。

你可以在 <body> 标签内的任何位置放置一个类似 <div> 的“容器”元素。React 将把该 HTML 元素内的任何内容替换掉,因此一个空标签即可。你可以根据需要在页面上放置任意多个类似的 HTML 元素。

<!-- ... existing HTML ... -->
  <div id="component-goes-here"></div>
<!-- ... existing HTML ... -->

2.2、第二部:添加 script 标签

在 HTML 页面中,将以下三个文件通过 <script> 标签添加到 </body> 标签前:

react.development.js 加载 React 核心代码

react-dom.development.js 让 React 渲染 HTML 元素到 DOM 中。

like_button.js 这将是你在第三步中编写组件的地方!

部署到生产环境时,将 “development.js” 文件替换为 “production.min.js” 文件。

<!-- end of the page -->

<script src="https://unpkg.com/react@17/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js" crossorigin></script>
<script src="like_button.js"></script>
</body>

React without JSX

最初引入 JSX 是为了让使用 React 编写组件的感觉就像写 HTML 一样。从那时起,改语法变得流行起来。但是,在某些情况下,你可能不想使用或无法使用 JSX。那么你有两个选择:

使用类似 htm 之类的 JSX 替代方案,htm 不需要编译器,而是使用 JavaScript 内置的标记模板(Tagged Templates)语法。

使用 React.createElement() 函数,该函数具有特殊结构,后面有详解。

通过使用 JSX,你可以像这样编写组件:

function Hello(props) {
  return <div>Hello {props.toWhat}</div>;
}

ReactDOM.render(<Hello toWhat="World" />, document.getElementById('root'));

而使用 React.createElement() 函数的化,你需要像这样编码:

function Hello(props) {
  return React.createElement('div', null, `Hello ${props.toWhat}`);
}

ReactDOM.render(
  React.createElement(Hello, {toWhat: 'World'}, null),
  document.getElementById('root')
);

该函数接受三个参数: React.createElement(component, props, children)。以下解释器工作原理:

一个 component 参数,可以实一个代表 HTML 元素的字符串,也可以是一个函数形式的组件

一个对象,可以是任何 你想传入的 props

一个对象,可以是任何  组件,例如文本字符串

如果你厌倦了输入 React.createElement(),一个常规的办法是为其赋予一个速记符:

const e = React.createElement;

ReactDOM.render(e('div', null, 'Hello World'), document.getElementById('root'));

如果将此速记符来代替 React.createElement(),就能在不使用 JSX 的情况下达成同样的便利。

3、设置编辑器

一个正确配置的编辑器能够让读代码更清晰、写代码更快。它甚至可以帮你在写代码时捕获 bug!如果这是你第一次设置编辑器,或者你希望调整编辑器,以下是我们的一些建议。

3.1、选择你的编辑器

VS Code 是如今最流行的编辑器之一。它拥有一个庞大的插件市场,并集成了 GitHub 等流行的服务。下面列出的功能大部分可以作为插件添加到 VS Code 中,插件让 VS Code 高度可配置!

React 社区中其它常用的编辑器包括:

WebStorm—专为 JavaScript 设计的集成开发环境。

Sublime Text—支持 JSX 和 TypeScript,内置了语法高亮和自动代码补全功能。

Vim—一个高度可配置的文本编辑器,能够高效地创建和修改任何类型的文本。它作为 “vi” 命令存在于大多数 UNIX 系统和 Apple OS X 中。

某些编辑器内置了这些功能,但其它编辑器可能需要安装插件。请查看你所选择的编辑器是支持以下功能!

代码过滤(Linting)

代码过滤的作用是在你书写代码时发现代码中的错误,并帮助你今早修复错误。ESLint 是一个流行的、开源的 JavaScript 过滤器。

  • 安装 ESLint 并使用 React 的推荐配置 (请确保 Node 已安装!)
  • 利用官方插件将 ESLint 集成到 VSCode 中

格式化

与其他贡献者共享代码时,最不想做的事情就是讨论用 制表符(tabs)还是空格(spaces)!幸好,有 Prettier 来重新清理代码使其符合预定义的规则。运行 Prettier,所有的制表符(tabs)都将转换为空格(spaces),缩进、引号等也将全部根据配置被修改。理想的设置是当你保存文件时,Prettier 就会运行并帮你完成这些修改。

你可以按如下步骤安装 Prettier extension in VSCode :

  1. 启动 VS Code
  2. 按快捷键( CTRL/CMD + P
  3. 粘贴 ext install esbenp.prettier-vscode
  4. 按回车键
保存文件时执行格式化

理想情况下,应该是在你每次保存文件时格式化代码。VS Code 已支持此设置!

  1. 在 VS Code 中,按CTRL/CMD + SHIFT + P
  2. 输入 “settings”
  3. 按回车键
  4. 在搜索栏中,输入 “format on save”
  5. 确保勾选了 “format on save” 选项!

Prettier 有时会与其它代码过滤其产生冲突。但是通常都会有办法让它们很好地配合工作。例如,如果需要同时使用 Prettier 和 ESLint,则可以使用 eslint-prettier 插件并通过 ESLint 规则来运行 prettier。

3.4、React 开发者工具

通过 React 开发者工具(React Developer Tools)可以检查 React components、编辑 props 和 state,以及定位性能问题。

浏览器扩展

对使用 React 构建的网站进行调试的最简单方法就是安装并使用 React 开发者工具的浏览器扩展插件。该插件支持几种常简的浏览器:

  • 为 Chrome 浏览器安装扩展插件
  • 为 Firefox 浏览器安装扩展插件
  • 为 Edge 浏览器安装扩展插件

现在,如果你访问 基于 React 构建的网站 时,你将看到 ComponentsProfiler 面板。

Safari 和其它浏览器

对于其它浏览器(例如 Safari),请安装 react-devtools 这一 npm 软件包:

 

# Yarn

yarn global add react-devtools

# Npm

npm install -g react-devtools

然后从终端(命令行)中开启开发者工具:

 

react-devtools

然后,通过在网站的 <head> 标签内添加以下 <script> 标签来连接网站:

 

<html>

<head>

<script src="http://localhost:8097"></script>

现在,在浏览器中刷新网站,就能使用开发者工具了。

移动端(React Native)

React 开发者工具也可用于检查基于 React Native 构建的应用程序。

将 React 开发者工具安装到全局环境中是最简单的方式:

 

# Yarn

yarn global add react-devtools

# Npm

npm install -g react-devtools

接下来打开终端(命令行)就可以使用开发者工具了。

 

react-devtools

该工具就可以连接到任何运行在本地机器上的 React Native 应用程序了。

如果开发者工具经过几秒后仍无法连接,请尝试重启应用程序。

了解有关调试 React Native 的详细信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/735251.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1-Wire的使用

代码&#xff1a; ds18b20.c /*《AVR专题精选》随书例程3.通信接口使用技巧项目&#xff1a;1-Wire 单总线的使用文件&#xff1a;ds1820.c说明&#xff1a;DS18B20驱动文件。为了简单&#xff0c;没有读取芯片地址&#xff0c;也没有计算校验作者&#xff1a;邵子扬时间&…

学生选课管理系统(JAVA课设)PS:有前端界面

1.课设要求描述 实现系统的所有功能&#xff0c;包括但不限于&#xff1a; 学生信息管理&#xff08;增加、删除、修改、查询&#xff09;课程信息管理选课操作成绩管理 2.制作思路及基础讲解 此项目主要是用于完成大二下半学期的JAVA大作业&#xff0c;也可当作课设&…

详细解析MATLAB和Simulink中的文件格式:mat, mdl, mexw32, 和 m 文件

matlab 探索MATLAB和Simulink中的文件格式&#xff1a;MAT, MDL, MEXW32, 和 M 文件**MAT 文件 (.mat)****MDL 文件 (.mdl)****MEX 文件 (.mexw32/.mexw64)****M 文件 (.m)****总结** 探索MATLAB和Simulink中的文件格式&#xff1a;MAT, MDL, MEXW32, 和 M 文件 当你开始使用M…

纯js开发在线截图生成器工具,思路和方法在这里

不谈使用转账付款交易截图的用途是什么&#xff0c;我这里只谈怎么通过代码来实现这个功能的思路&#xff0c;以及用到的技术。 最近有个客户找到探奇客需要定制一个截图生成的工具。开发后的效果是这样的 开发这个转账付款交易截图生成器用到了这些组件&#xff0c;这里就直接…

C# OCCT Winform 界面搭建

目录 1.创建一个WInform项目 2.代码总览 代码解析 3.添加模型到场景 4.鼠标交互 1.创建一个WInform项目 2.代码总览 using Macad.Occt.Helper; using Macad.Occt; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Remoting.Co…

现在的Android程序员为什么会感到焦虑?焦虑的源头在哪里?该怎么去缓解焦虑呢?——没有无中生有的贩卖焦虑,只有你的挣扎和不甘。

二、知识为何产生焦虑 先说两个世界&#xff0c;知识的世界和现实的世界。 知识的世界&#xff0c;由承载知识的那些载体组成&#xff0c;比如图书、音视频、报刊、自媒体等。 现实的世界&#xff0c;就是我们每天生活的、做出各种行为的世界。 学习的目的是什么呢&#xff1…

将WIN10的wifi上网分享给以太网接口

目录 打开网络设置设置属性点这里的设置将wlan主机的以太网接口IP设为自动获取 如果连接不成功&#xff0c;拔网线重连一次 打开网络设置 设置属性 点这里的设置 将wlan主机的以太网接口IP设为自动获取 如果连接不成功&#xff0c;拔网线重连一次

【八股系列】说一下mobx和redux有什么区别?(React)

&#x1f389; 博客主页&#xff1a;【剑九 六千里-CSDN博客】 &#x1f3a8; 上一篇文章&#xff1a;【介绍React高阶组件&#xff0c;适用于什么场景&#xff1f;】 &#x1f3a0; 系列专栏&#xff1a;【面试题-八股系列】 &#x1f496; 感谢大家点赞&#x1f44d;收藏⭐评…

论文《Geom-GCN:Geometric Graph Convolutional Networks》笔记

【Geom-GCN】现有的MPNNs方法具有两个基本弱点&#xff1a;①丢失邻域节点的结构信息&#xff1b;②缺乏捕获非同配性图的长距离依赖的能力。本文从经典神经网络和网络几何学的观察出发&#xff0c;提出了一种新的几何聚合方案&#xff0c;该方案利用图背后的连续空间进行聚合&…

Python爬虫技术:动态JavaScript加载音频的解析

在当今的互联网世界中&#xff0c;JavaScript已成为构建丰富交互体验不可或缺的技术。然而&#xff0c;对于网络爬虫开发者来说&#xff0c;JavaScript动态生成的内容却带来了不小的挑战。音频内容的动态加载尤其如此&#xff0c;因为它们往往涉及到复杂的用户交互和异步数据加…

游戏高度可配置化(二)用“模型抽象”化解游戏策划和程序员的江湖恩怨

游戏高度可配置化&#xff08;二&#xff09;用“模型抽象”化解游戏策划和程序员的江湖恩怨 码客 卢益贵 ygluu 关键词&#xff1a;模型抽象、功能抽象、抽象工厂模式、游戏服务端引擎、高度可配置化、恩怨情仇、游戏策划、数据引擎、生产消费模型、订阅-通知模型 一、前言…

Day11 —— 大数据技术之Spark

Spark快速入门系列 Spark的概述什么是Spark&#xff1f;Spark的主要特点Spark的主要组件 Spark安装Spark三种运行模式Spark Standalone架构Spark Standalone的两种提交方式Spark On YARN架构 RDD算子转化算子行动算子 Spark RDDRDD的创建从对象集合创建RDD从外部存储创建RDD Sp…

基于SpringBoot+vue闲置物品交易网站详细设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…

系统架构师概述

引言 系统架构设计师是项目开发活动中的众多角色之一&#xff0c;它可以是一个小组或者一个人或者是一个团队&#xff0c;架构师包含建筑师&#xff0c;设计师&#xff0c;创造者&#xff0c;缔造者&#xff0c;可以说架构师就是我们社会各个领域的创造者和缔造者。从组织上划分…

【深度学习系列】全面指南:安装TensorFlow的CPU和GPU版本

本博客旨在为初学者提供一份全面的指南&#xff0c;介绍如何根据个人电脑的配置选择并安装适合的TensorFlow版本。内容涵盖了如何查看电脑显卡型号以确定是安装CPU还是GPU版本的TensorFlow&#xff0c;创建Python虚拟环境&#xff0c;以及使用conda命令查找可用的TensorFlow版本…

使用Vercel 搭建自己的Dashy导航页

背景 Dashy 是一个开源的自托管导航页面配置服务&#xff0c;它具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。用户可以利用 Dashy 将自己常用的一些网站聚合起来&#xff0c;形成一个个性化的导航页面。 同类的竞品还有Heimdall, Flare 等。 可以通过Docker 等…

DAMA学习笔记(二)-数据治理

1.引言 数据治理&#xff08;Data Governance&#xff0c;DG&#xff09;的定义是在管理数据资产过程中行使权力和管控&#xff0c;包括计划、监控和实施。在所有组织中&#xff0c;无论是否有正式的数据治理职能&#xff0c;都需要对数据进行决策。建立了正式的数据治理规程及…

深入学习Java1213新特性

一、关于Java生态圈 二、Java老矣,尚能饭否? 三、JDK各版本主要特性 四、JDK与IDE的下载与安装 五、Java12新特性 1.switch表达式(预览)

以太坊==MetaMask获取测试币最新网址

估算分数https://community.infura.io/t/unable-to-receive-sepolia-eth-from-faucet/7715 Gitcoin Passport 水龙头地址&#xff0c;填入自己的测试地址 水龙头项目地址 GitHub - pk910/PoWFaucet: Modularized faucet for EVM chains with different protection methods (…

DNF手游攻略:云手机辅助流光星陨刀详细攻略大全!

DNF手游中&#xff0c;流光星陨刀是鬼剑士的专属神器之一&#xff0c;拥有快速的攻击速度和优秀的物理与法术攻击属性&#xff0c;因其出色的性能和未来升级的潜力&#xff0c;成为广大玩家关注的焦点。 流光星陨刀的背景与起源 流光星陨刀作为鬼剑士的标志性武器之一&#xf…