testing-library/react中的render渲染得到的dom中是如何包含外部的css样式的?
这里只获取了一个react element
,但是它的外部样式是如何整合到最终的dom上的呢?
render(<Component />)
拿vite + react + tailwindcss
项目来说吧,样式是在/src/index.css
。
// src/index.css@tailwind base;...
配置
vitest
配置中设置css: true
setUpFiles
中导入src/index.css
问题:
vite
参与吗了?如果参与了,vite
是如何参与?它又做了什么呢?答案:
不是。testing-library/react
的render
函数返回的DOM节点本身并不直接包含外部的CSS样式。render
函数只是用于在测试环境中模拟React组件的渲染,它会返回一个查询工具集,帮助你查询和操作渲染出来的DOM节点。
答案:
在构建或开发过程中,Tailwind CSS 的解析工作是由构建工具(如Vite)和相关的预处理器或加载器(如PostCSS和Tailwind CSS插件)来完成的。这些工具会读取你的CSS文件(如src/index.css
),解析Tailwind CSS的指令,并将自定义的类名转换为实际的CSS规则。
vite
参与了吗?如果参与了,vite
是如何参与?它又做了什么呢?答案:
整个流程大致如下:
开发或构建时:
Vite
是一个构建工具和开发服务器,它会监听文件变化并实时地处理这些文件。Vite
检测到CSS文件(如src/index.css
)变化时,它会使用配置的插件和加载器(如PostCSS和Tailwind CSS插件)来解析和转换这些文件。@tailwind
指令,并根据配置生成相应的CSS规则。浏览器渲染时:
测试时:
testing-library/react
的render
函数时,它会在一个隔离的测试环境中模拟组件的渲染。在这个过程中,Vite
主要负责构建和开发时的文件处理和转换工作,确保Tailwind CSS能够被正确解析和转换,并将其应用于最终构建的应用中。而在测试环境中,testing-library/react
则关注于模拟组件的渲染和提供查询工具集,以便进行单元测试。
问题内容: 每当我尝试在React的中使用Font Awesome图标时,尽管它可以在普通HTML中运行,但它不会显示在结果网页上。 这是一个实时示例:http : //jsfiddle.net/pLWS3/ 哪里错了? 问题答案: React使用属性,例如DOM。 如果您使用开发版本,并查看控制台,则会出现警告。您可以在jsfiddle上看到它。 警告:未知的DOM属性类。您是说classNam
在服务器端react中使用react路由器dom会创建错误。 如果url匹配我的组件路径,我将使用react router dom BrowserRouter在div中呈现我的组件。 然后使用以下代码以特定div为目标渲染我的组件: 但此代码仅在客户端react中工作。如何将此实现到服务器端?
问题内容: 是否可以从外部源获取HTML / JSX内容并在React中动态呈现它?在我们的例子中,我们想从Wordpress API中获取内容,并在客户端和服务器上都进行渲染(我们正在使用NextJS) 因此,Wordpress API返回一个JSON响应,其中包括一个content属性,该属性是一串HTML / JSX。内容看起来像这样。 因此,如您所见,它将是HTML和React组件/ JS
问题内容: 如何在样式组件中使用条件渲染以使用React中的样式组件将按钮类设置为活动状态? 在css中,我会这样做: 在样式化的组件中,如果我尝试在类名中使用“ &&”,则不喜欢它。 问题答案: 你可以简单地做到这一点 在您的样式中,如下所示:
问题内容: 对我的应用程序使用的各种视图使用单独的样式表的正确/可接受的方法是什么? 目前,我在视图/部分的html顶部放置了一个link元素,但有人告诉我这是一种不好的做法,即使所有现代浏览器都支持它,但我可以理解为什么对此不满意。 另一种可能性是将单独的样式表放在我的index.html中,但是我希望它仅在以性能名义加载其视图时才加载样式表。 这是不好的做法吗,因为样式只有在将css从服务器加
问题内容: 我非常喜欢React中的内联CSS模式,并决定使用它。 但是,您不能使用和类似的选择器。那么,在使用内联CSS样式时实现悬停时高亮显示的最佳方法是什么? 该有一个状态,并将其作为道具的链接。但是,(我的方式来实现它)包裹的,以便它可以设置并给它。不过,这会使事情有些复杂(例如,包裹在行为上与有所不同)。 有没有更简单的方法? 问题答案: 我处于同样的情况。确实像在组件中保留样式的模式,