苹果mp是什么版:RN从0到1系统精讲与小红书APP实战(2023版)-夔府孤城落日斜

平心在线px111 84 2

苹果mp是什么版:RN从0到1系统精讲与小红书APP实战(2023版)-夔府孤城落日斜-第1张图片-平心在线

如何编写类型平安的CSS模块

RN从0到1系统精讲与小红书APP实战(2023版)

download:/

在这篇文章中,作者讨论了如何在 CSS 模块中运用类型平安苹果mp是什么版。由于 CSS 模块在运转时生成类名并在构建之间更改,因而很难以类型平安的方式运用它们。一种处理计划是运用 TypeScript 定义文件为每个 CSS 模块手动创立类型,但更新这些文件十分繁琐。文章提出了一个问题,即假定在 CSS 模块中添加或删除了一个类名。

下面是正文~

运用TypeScript的益处之一是它显著减少了特定错误的发作,例如拼写错误;它以至使访问原型办法和执行重构愈加容易苹果mp是什么版。在编译时捕获的错误能够进步正常运转时间,让客户愈加称心,并减少开发人员的紧急呼叫压力。

运用TypeScript,很容易为我们的应用程序的业务逻辑和控制流程停止类型标注,但假如我们也能使CSS类平安,那该多好呢?确保正确的CSS类名曾经就位能够确保所需的款式应用于给定的组件,从而避免由于排版错误而招致款式错位苹果mp是什么版

在本文中,我们将讨论CSS模块是什么,讨论它们的开发者体验缺陷,并学习如何经过运用TypeScript自动化来处理这些问题苹果mp是什么版。让我们开端吧!

苹果mp是什么版:RN从0到1系统精讲与小红书APP实战(2023版)-夔府孤城落日斜-第2张图片-平心在线

展开全文

什么是CSS模块苹果mp是什么版

CSS模块提供了一种在现代Web应用程序中编写模块化和作用域CSS款式的办法苹果mp是什么版。这些款式特定于你的应用程序的特定组件或模块。你能够运用常规CSS编写CSS模块。

在构建时,运用 Vite 或其他相似的工具,CSS 模块为 CSS 文件中定义的每个类生成独一的类名苹果mp是什么版。然后在 JavaScript 中运用生成的类名来援用 CSS,从而使 CSS 模块化和可重用,防止类名抵触或不用要的反复。

在撰写本文时,CSS类名不再是全局的,处理了许多像BEM这样的办法论旨在处理的问题,但无需手动努力苹果mp是什么版。但是,在CSS模块中遵照BEM依然取决于用例而有益。

将 CSS 模块添加到苹果mp是什么版你的项目中

假如你想在下一个 TypeScript 应用程序中运用 CSS 模块,则有几个选项苹果mp是什么版

现代构建工具如 Vite 和 Snowpack 支持 CSS 模块化,但假如你运用的是 webpack,可能需求包含一些小的配置苹果mp是什么版

一旦构建立置完成苹果mp是什么版,能够依照CSS模块商定添加带有 module.css 扩展名的CSS文件:

// button.module.css

.green <{p> background-color: 'green';

.blue <{p> background-color: 'blue';

.red <{p> background-color: 'red';

为了应用这些款式并应用上述益处,我们应该从 TypeScript 文件中导入 CSS 模块并绑定 HTML苹果mp是什么版。请记住,下面的示例是用 React 编写的,但语法与其他 UI 库十分类似:

// Component.tsx

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

const Component = () => (

<>

<button className={styles.green}>I am green!</button>

<button className={styles.blue}>I am blue!</button>

<button className={styles.red}>I am red!</button>

</>

假如你在本地运转上面的代码,您会留意到返回的 styles 没有被严厉限制类型苹果mp是什么版。相反,它们被视为任何类型。此外,TypeScript 编译器不会在类名不存在时通知你。

苹果mp是什么版:RN从0到1系统精讲与小红书APP实战(2023版)-夔府孤城落日斜-第3张图片-平心在线

开发者体验的改良

CSS模块是一个很好的工具,但由于类名是在运转时生成的并且在构建之间发作更改,因而很难以类型平安的方式运用它们苹果mp是什么版

你能够运用TypeScript定义文件手动为每个CSS模块创立类型,但更新它们很繁琐苹果mp是什么版。假定从CSS模块中添加或删除了一个类名。在这种状况下,必需手动更新类型,否则类型平安性将无法按预期工作。

关于上面的例子苹果mp是什么版,输入应该如下:

declare const styles: <{p> readonly green: string;

readonly blue: string;

readonly red: string;

export default styles;

这些类型在我们修正相关的CSS模块之前都能很好地工作苹果mp是什么版。一旦我们修正了它,我们就必需更新类型。假如我们遗忘手动更新类型,可能会呈现一些厌恶的UI错误。

苹果mp是什么版我们遗忘修正相关的类型文件:

// button.module.css.d.ts

declare const styles: <{p> readonly green: string;

readonly blue: string;

readonly red: string;

we forgot to update the types!

export default styles;

// Component.tsx

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

const Component = () => (

<>

<button className={styles.green}>I am green!</button>

<button className={styles.blue}>I am blue!</button>

<button className={styles.red}>I am red!</button>

</>

在这个例子中展现的状况可能看起来不相关,但随着代码库和奉献者数量的增长,这种反复和容易出错的过程将会障碍对类型系统的信任苹果mp是什么版。援用不存在或打错字的 CSS 类将无法按预期款式化 HTML,这可能很快演化成开发人员失去对工具的信任。让我们学习如何自动化它!

自动化

在这种状况下,自动化处理计划很简单苹果mp是什么版。我们将自动生成类型,而不是手动创立,并提供一个脚原本考证生成的类型能否最新,以防止不正确的 CSS 模块类型走漏到编译步骤中。

有多种办法能够完成这一点苹果mp是什么版。例如,我们能够构建一个将 CSS 转换为 TypeScript 定义的提取器。但是,为了防止反复造轮子

运用 npm i typed-css-modules 在你的项目中装置包苹果mp是什么版,然后将类型生成添加到你的主开发脚本中的 package.json 脚本中:

"watch": "vite & tcm --watch .",

添加检查最新类型的功用苹果mp是什么版。假如生成的类型在 package.json 脚本中不正确,则会失败:

"check:up-to-date-types": "tcm --listDifferent .",

有了这两个脚本,如今能够自动坚持 CSS 模块类型定义的同步,并检查类型能否坚持最新苹果mp是什么版

依据项目的不同,你可能更喜欢在本地或效劳器上运转这些脚本,可能作为你的 CI 流水线的一局部苹果mp是什么版。为了完善示例,我们将描绘如何运用 husky 将它们作为 Git Hook 运转。

运用 npx husky-init && npm install 装置并设置 Git Hook runner苹果mp是什么版。要设置在每次提交之前运转 CSS 模块类型检查的 pre-commit Hook,请将 .husky/pre-commit 文件修正为以下内容:

#!/usr/bin/env sh

. "$(dirname -- "$0")/_/husky.sh"

npm run check:up-to-date-types

在每次提交之前,钩子将运转并考证类型能否最新苹果mp是什么版

总结

在TypeScript生态系统中工作具有宏大的潜力,但是,当过度依赖手动流程时,很容易毁坏类型系统的信任或产生不用要的摩擦苹果mp是什么版

CSS模块十分棒,经过一些额外的配置,很容易为生成的类添加类型平安性苹果mp是什么版。您应该自动化繁琐的工作,以便你的团队能够专注于构建出色的产品。

标签: 小红 精讲 落日 实战 系统

发表评论 (已有2条评论)

评论列表

2023-05-15 09:36:23

t; (<><button className={styles.green}>I am green!</button><button className={styles.bl

2023-05-15 07:42:21

的特定组件或模块。你能够运用常规CSS编写CSS模块。在构建时,运用 Vite 或其他相似的工具,CSS 模块为 CSS 文件中定义的每个类生成独一的类名苹果mp是什么版。然后在 JavaScript 中运用生成