在大多数情况下,从每个类别中挑选一个两个就足够了。我想提供一些替代方案,以便我们能找到一些更好的工具。 现在,我们就开始今天的内容吧。...提供 API 中数据的完整描述,让客户能够准确地询问他们需要什么。...28、NuxtJS 地址:https://www.npmjs.com/package/next NuxtJS 基本上是 Vue 生态系统中的 NextJS 替代品。...它通过使用散列或对象中提供的值扩展模板中的标签来工作。...表格和电子邮件 42、Formik 地址:https://www.npmjs.com/package/formik Formik 是一个流行的 React 和 React Native 开源表单库。
6.Styled-components[19] 在组件和样式之间架起桥梁的 CSS-in-JS 工具,提供了大量的特性,让你以一种功能性和可重用的方式启动和运行样式组件。...数据库工具 19.Mongoose[40] Mongoose 是一个 MongoDB 对象建模工具,设计用于在异步环境中工作。Mongoose 支持 Promise 和回调。...28.NuxtJS[49] 在 Vue 的生态系统中,NuxtJS 基本上是 NextJS 的替代品。NuxtJS 的目标是让 web 开发功能强大,并且让开发者具有良好的开发意识。 ?...它的工作原理是使用 hash 或对象中提供的值在模板中展开标记。 30.Handlebars[51] 使用模板和输入对象生成 HTML 或其他文本格式。...表单和邮件 42.Formik[65] Formik 是 React 和 React Native 的一个流行开源表单库。它具有易于使用、声明性和适应性的特点。
nextjs Next.js 是一个用于构建 Web 应用程序的框架。 使用 Next.js,你可以使用 React 组件构建用户界面。...表单处理 Formik 面对现实吧,在 React 中处理表单确实很冗长。更糟糕的是,大多数表单辅助工具做了太多的魔法,并且通常会伴随着显著的性能损耗。...Formik 是一个小型库,可以帮助您解决以下三个最令人讨厌的问题: 将值放入和取出表单状态 验证和错误消息 处理表单提交 通过将所有这些放在一个地方,Formik 可以让事情井然有序,使得测试、重构和理解您的表单变得轻而易举...由于大约有 30 个独特的表单,很快就明显发现,我们可以通过标准化不仅是输入组件,还有数据在表单中的流动方式来获益。 为什么不使用 Redux-Form?...虽然后来他们添加了“向导”表单,但使用起来并不太直观。 此外,Formik 依赖于表单元素,并且在控制 Redux 存储时存在一些挑战。
useReducer 的工作原理与 redux 有些相似,useReducer 返回的数组的第二个参数就像 redux 中的 dispatch,可以派发 action。...Formik 工具库 Formik 库可以让你在 React 中轻松构建出健壮的 Form 表单程序。...使用时需要先下载: npm install formik --save Formik 库可以与 yup 库一块使用,库的作者也推荐搭配使用,yup 是一个用于验证字段的库,它的用法类似于 React 中的.../> 组件可以让你不用再手动创建 onSubmit 或 onResize 事件句柄,在 Formik 组件中直接书写即可。...在 Formik 官网,作者也举例了使用 redux-form 的缺陷: 表单状态本质上是短暂的和局部的,并不需要 redux 对其进行跟踪; 使用 redux 管理状态时,状态更新要派发 action
Internet Explorer 曾是使用最广泛的网页浏览器,在 2002 年和 2003 年达到 95% 的使用率高峰。...Microsoft Edge 项目经理 Sean Lyndersay 表示: 我们宣布,Windows10 上的 Internet Explorer 的未来在 Microsoft Edge 中,Internet...精简的生产力 不得不为不同的任务使用不同的浏览器会让人感到沮丧。你可能想留在现代浏览器中,但公共网站或内部工作应用程序可能只能在IE浏览器中运行。这就是微软Edge的用武之地。...你不必再为这个网站使用 "这个浏览器",为那个网站使用 "那个浏览器",现在你可以只使用Microsoft Edge。 Microsoft Edge还提供了你在IE浏览器中找不到的新的、现代的功能。...你喜欢在工作和个人使用中使用不同的浏览器吗?试着在Microsoft Edge中设置不同的配置文件,然后直接使用它。
项目链接: https://www.npmjs.com/package/next 28.NuxtJS NuxtJS 在本质上属于 Vue 生态系统中的 NextJS 替代方案。...它通过使用哈希或对象中提供的值,在模板内扩展标签。...两大出色工具在代码中对图像进行创建、编辑、合成与转换。...表单与电子邮件 42.Formik Formik 是一款流行的开源表单库,易于使用且具备声明性及自适应性。...项目链接: https://www.npmjs.com/package/formik 43.Multer Multer 是一款 Node.js 中间件,用于处理上传文件中的多部分 / 表单数据。
Nextjs中SSR渲染的局限性 getInitialProps()方法虽然强大好用,但是现在还存在一个问题——只能在“内页”中使用。Nextjs_规定了所有放置到..../component)的组件是无法使用getInitialProps()方法的。乍一看这样似乎没多大问题,但是某些应用又需要这些组件不能放置到./pages中暴露到_url_中,又需要异步加载数据。...在企业级应用中(例如OA系统)通常不太需要实现SSR,这个时候可以根据角色权限在组件的componentDidMount()方法中异步加载菜单,但是在某些时候(例如一个可配置菜单的内容网站,或者对企业级应用进行服务端缓存...在Jquery“统治”的年代可以使用_selector_(比如$('#id'))轻易获取到页面上的任何元素。...组件ssr异步数据实现 为了实现本文的需求——让所有组件实现类似于getInitialProps()的方法,我们先要理清_Nextjs_前后端渲染的过程。 渲染过程 _Nextjs_为使用者提供了.
React Dev Tools 在开发原生js的时候,我们经常使用浏览器自带的开发者工具,它足以帮助我们查看和调试js中变量的各种信息,但是对于react框架来说,因为它是采用动态渲染生成的代码结构,...React Sight 这也是一个浏览器扩展,它需要你在安装上面的react dev tools扩展之后才能使用。...useHooks Hooks是 React 中的新增功能,可让我们在不编写类的情况下使用状态和其他 React 的功能。...Formik 表单处理是网页开发经常会遇到的问题,而Formik是一个可以在React中构建表单的组件。...它与支持热模块替换 (HMR) 和 Babel 插件的 Webpack 和其他打包器一起使用。通过使用它,可以让你的开发效率得到大大提升。
Next.js 为了实现后端渲染,重度使用了 JS 生态中的打包构建工具 webpack。...浏览器中的大量级联网络请求会导致启动时间相对较慢。对于浏览器来说,如果它可以在尽可能少的网络请求中接收到它需要的代码——即使是在本地服务器上,它会更快。...有两种方法可以加快进程:减少工作量或并行工作。我们知道,如果我们想让最快的打包器成为可能,我们需要用力拉动两个杠杆。 我们决定为分布式和增量行为创建一个可重用的 Turbo 构建引擎。...简而言之,它以最大速度做最少的工作。 Vite 和 esbuild 其他工具对“做更少的工作”采取不同的态度。Vite 通过在开发模式下使用 Native ESM 将工作量降至最低。...在被问及如何看待 Webpack 的未来,以及是否预计在更广泛的网络社区中,大量的 Webpack 使用会迁移到 Turbopack 这一问题时?
在没有容器之前,使用不同编程语言或框架编写的程序,部署和运行的方式千差万别。...镜像中包含了程序以及程序对运行环境的依赖。 不管前后端应用都可以使用镜像的形式进行分发和流通。...在 Zadig 中,我们只需要告诉 Dockerfile 在哪,其余的工作(比如镜像 tag、镜像发布)都不需要操心: 接入其他构建平台也是类似的,我们只需要学习对应平台如何构建镜像就行。...当然,也有解决办法: 使用 SSR。理论上可以解决,但是现代前端框架不是纯动态的,也会有一个编译的过程 模板替换。可以参考 微前端的落地和治理实战 ,运行容器。...,所以曲线救国, 使用 envsubst 来替换 nginx.conf 中的环境变量占位符。
由于项目在多地区进行发布,为了复用,主工程使用同一个,但是这样会带来一个问题,由于地区的设备分布不同,以及当地的字体选择不一样,从而导致了 global 中的一些熟悉无法复用,而且必须配置两套,那么如何来解决这个问题呢...所以Loader的作用是让webpack拥有了加载和解析非JavaScript文件的能力。 Plugin直译为"插件"。Plugin可以扩展webpack的功能,让webpack具有更多的灵活性。...用法不同 Loader在module.rules中配置,也就是说作为模块的解析规则而存在。...类型为数组,每一项都是一个Object,里面描述了对于什么类型的文件(test),使用什么加载(loader)和使用的参数(options) Plugin在plugins中单独配置。...nextjs 框架,webpack 是自动生成的,因此我们需要看看 nextjs 如何应用。
特别是在 Node.js 环境当中,各种主流库和框架都没有内置 auth-primitives。因此,开发人员不得不自己想办法构建身份验证解决方案。 但从零开始构建安全身份验证是项颇为艰巨的任务。...虽然前面讨论的库也能支持这些功能,但需要在本就复杂的设置之外再做更多额外工作。 这时就要请出托管身份验证提供程序 Clerk 了,它消除了身份验证中的所有难题,大大降低了妥善保护全栈应用程序的门槛。...在本教程中,我们将运用 Clerk 及其全新 App Router,在 Next.js 13 当中构建一款简单的全栈应用程序。...使用以下内容,在 /src/app/sign-in/[[..sign-in]]/page.tsx 中创建一个新组件:import { SignIn } from '@clerk/nextjs'; export...中括号用于捕捉 Clerk 内部使用的 /sign-in/... 之后的所有内容。使用新的 App Router 功能,页面本体将始终存放在 page.tsx 文件之内。
背景 现在很多网站都使用了前后端的分离的架构,前后端可以不在一台服务器上,前端为了保证 SEO,必须使用预渲染,SSG 或 SSR 技术。而我的站点则使用了 NextJS 的 SSR 技术。...为了解决这种问题,必须想办法把原本的请求头部或者其他元数据转发到此次请求上。有点类似反向代理,但是又有点不同。好在 NextJS 为我们提供了这一接口。 踩坑之路 带着这个想法,我踩了很多坑。...首先我查到 NextJS 可以在 Custom App 上定义 getInitialProps (和 NextPage 一致)。...这个 req 对象就是用户的请求,我们只需要把这个 req中的某些元数据附加到之后请求的 axios 实例上即可。当然只需要判断是不是在预渲染的时候就行了,因为如果不在渲染端就不需要做转发。...我们可以使用 typeof window === 'undefined' 来判断是否在渲染端。
我们用NextJS[39]来做这些工作,因为ReactJS[40]是目前地球上最流行的前端框架,而 NextJS 是建立在它之上的,在我看来,它比原始的 ReactJS 更方便使用。...现在,在 Metamask 中(请永远不要使用有真实资金的 Metamask 进行开发。...使用示例 Nader Dabit Explainer[51] 另外,在下面的例子中,我打算从另一个文件中导入abi,这样就不会让文章的内容臃肿了。...因为很多时候,你想添加大量的功能,在链上做起来会花费太多 Gas!所以你仍然想有一个后台和数据库。 因此,你仍然让智能合约做主要工作,而 Moralis 可以做所有围绕它的一些工作。...它还包含了一个上下文组件管理器和一些令人难以置信的强大的 Hook 函数,让你可以直接上手并开始工作,还内置了一些 web3 钱包连接。
npm search 二、选型 「你有没有参与或主导过业务技术选型,你们是如何考虑技术选型的呢?」 这是工作了三五年的前端出去面试时经常会碰到的问题。 答:使用最流行的技术方案。...,用以观察 API 是否好用,是否有强大的功能,是否能够满足工作需求。...文档中的示例: 如 lodash及一众较小体积的库 长按识别二维码查看原文 标题:lodash 仓库中的示例: 如 redux、nextjs 与 koa 长按识别二维码查看原文 标题:redux...长按识别二维码查看原文 标题:nextjs 长按识别二维码查看原文 标题:koa 仓库中的测试: 适用于一些边界的示例 为了某一个待调研的库,在本地新建一次性文件进行学习是一件不推荐的事情...在这个过程中,说不定你还能发现项目中的问题,并成为该项目的 Contributor 了。在简历中,又是光鲜亮丽的一笔。
如果需要做 SEO,要考虑的事情就更多了,怎么让服务端渲染和客户端渲染保持一致是一件很麻烦的事情,需要引入很多第三方库。...针对这些问题,Next.js提供了一个很好的解决方案,使开发人员可以将精力放在业务上,从繁琐的配置中解放出来。下面我们一起来看看它的一些特性。...default Index 在控制台输入npm run dev,这时候在浏览器输入http://localhost:3000,就能看到效果了。...九、总结 本文介绍了 Next.js 的一些特性和使用方法。它最大的特点是践行约定大于配置思想,简化了前端开发中一些常用功能的配置工作,包括页面路由、SSR 和组件懒加载等,大大提升了开发效率。...更详细的使用介绍请看官方文档。
元数据API的使用 你可以在页面组件(如page.tsx)或布局组件(如layout.tsx)中使用元数据API。...动态元数据(Dynamic Metadata) 在Next.js中,你可以使用generateMetadata函数来获取需要动态值的元数据。这对于提高网站的SEO得分非常有效。...使用动态元数据的优势 SEO提升:通过为每个页面提供独特且相关的元数据,可以显著提高页面在搜索引擎中的可见度。 个性化体验:动态元数据允许根据页面内容或用户行为提供更个性化的页面标题和描述。...在目录中创建不直接提供给客户端的文件 在特定目录中创建文件,这些文件不会直接作为页面提供给客户端,除非它们被显式地添加到page.tsx文件中。 5....通过以上步骤,你可以在Next.js应用中创建一个具有活动状态样式的导航栏,这不仅让用户界面看起来更加友好,还能提高用户的导航体验。
而且这里使用的 Next.js 组件,针对代码上传也做了很多优化工作,来保证快速的部署效率。 接下来将介绍如何基于 Next.js 组件,进一步优化我们的部署体验。...第一种的资源很好处理,Next.js 框架直接支持在 next.config.js 中配置 assetPrefix 来帮助我们在构建项目时,将提供静态资源托管服务的访问 url 添加到静态资源引入前缀中...STATIC_URL : "", }; 然后,在项目中修改引入 public 中静态资源的路径,比如: <!...中,这样即使云函数中没有 node_modules 文件夹,也可以通过 require('abc') 方式引入使用该模块。...注意:不同组件部署实例结果的依赖使用,需要保证 serverless.yml 中 org,app,stage 三个配置是一致的。
领取专属 10元无门槛券
手把手带您无忧上云