游达在vue生态进程中提到的样式动态变量注入是什么?
时间:2023-03-19 10:39:43
科技观察
本文已获得翻译许可。在VueRFCSFC样式CSS变量注入中有一个关于样式的提案,这个RFC为Vue开发人员提供了一种将组件响应数据用作CSS变量的方法。在Vue3中,我们可以通过简单的语法在运行时更新样式。在本文中,我们将了解如何使用这些SFC样式、它的工作原理,以及来自RFC的一些高级知识。本文主要内容:1.如何使用SFC风格?2、Vue中的响应式样式3、VueSFC样式变量的工作原理4、你需要知道的一些知识1、CSS变量在子组件中是不可用的2、使用Browse前检查5、SingleFileComponent总结:Singlefilecomponent,参考toasSFC,如何使用SFC风格?要使用此功能,只需两个步骤:在组件的脚本中声明一个响应变量。在css中使用v-bind来使用这个变量。这里举个栗子:
非常简单。如果您在浏览器中查看该组件,您会发现该元素从数据中正确获取了它的颜色值。这也适用于更复杂的数据结构。假设我们有一个名为fontStyles的对象,其中有一个weight属性。我们仍然使用v-bind来访问它,但是由于我们传递的是一个对象,我们需要使用JS表达式来访问这个内部属性,并且我们需要将表达式用引号引起来。
Vue响应式样式无论我们是使用JS表达式还是仅使用根级数据绑定,我们都可以利用Vue内置的响应能力在运行时更新样式。假设我们希望能够使用按钮来更改文本的颜色,那么我们开始吧。
我们要做的就是改变对应的变量值,CSS样式会自行更新。这就是此功能如此强大的原因,它为我们提供了一种简洁的方式来修改页面在运行时的外观。VueSFC样式变量的工作原理了解了用法之后,我们来看看Vue是如何实现的。如果我们检查元素,我们可以更好地理解Vue是如何发挥其魔力的。我们的样式部分中引用的任何变量都作为内联样式添加到组件的根元素中。像普通CSS一样编写,我们声明CSS变量-015c408c-color,并将其设置为红色,并将变量--015c408c-font_weight设置为800。element.style{/*rootelement*/--015c408c-color:red;--015c408c-font_weight:800;}.text{color:var(--015c408c-color);font-weight:var(--015c408c-font_weight);}然后它将v-bind转换为使用CSS变量。然后,每当响应数据发生变化时,我们的内联样式就会发生变化,这意味着...我们的css变量会发生变化,这意味着...最终样式会更改为响应的新值,这就是运行时更新样式的方式,就像颜色一样多于。CSS变量在子组件中不可用为了避免继承问题,定义的CSS变量不可用于其任何子组件。例如,如果我们向现有组件添加子组件。
假设子组件是这样构建的。