ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Vue3 CSS变量的使用, 不支持响应式渲染

2022-07-09 11:35:45  阅读:262  来源: 互联网

标签:const 渲染 color Hello Vue3 msg World defineComponent CSS


 1. style 中使用v-bind

不支持响应式渲染

 1 <template>
 2   <p class="msg">Hello World!</p>
 3 </template>
 4 
 5 <script lang="ts">
 6 import { defineComponent, ref } from 'vue'
 7 
 8 export default defineComponent({
 9   setup () {
10     const fontColor = ref<string>('#ff0000')
11 
12     return {
13       fontColor,
14     }
15   }
16 })
17 </script>
18 
19 <style scoped>
20 .msg {
21   color: v-bind(fontColor);
22 }
23 </style>

 

2.  :style 动态修改内联样式

 1 <template>
 2   <p
 3     :style="[style1, style2]"
 4   >
 5     Hello World!
 6   </p>
 7 </template>
 8 
 9 <script lang="ts">
10 import { defineComponent } from 'vue'
11 
12 export default defineComponent({
13   setup () {
14     const style1 = {
15       fontSize: '13px',
16       'line-height': 2,
17     }
18     const style2 = {
19       color: '#ff0000',
20       textAlign: 'center',
21     }
22 
23     return {
24       style1,
25       style2,
26     }
27   }
28 })
29 </script>

 

3.  动态绑定CSS

 1 <template>
 2   <p
 3     :class="[
 4       { activeClass1: isActive },
 5       { activeClass2: !isActive }
 6     ]"
 7   >
 8     Hello World!
 9   </p>
10 </template>
11 <script lang="ts">
12 import { defineComponent } from 'vue'
13 
14 export default defineComponent({
15   setup () {
16     const activeClass = 'active-class'
17     const activeClass1 = 'active-class1'
18     const activeClass2 = 'active-class2'
19     const isActive = true
20 
21     return {
22       activeClass,
23       activeClass1,
24       activeClass2,
25       isActive,
26     }
27   }
28 })
29 </script>

 

4. 防止CSS样式全局污染

scoped

1 <style scoped>
2 .msg {
3   width: 100%;
4 }
5 .msg p {
6   color: #333;
7   font-size: 14px;
8 }
9 </style>

style module

1 <template>
2   <p :class="$style.msg">Hello World!</p>
3 </template>
4 
5 <style module>
6 .msg {
7   color: #ff0000;
8 }
9 </style>
  自定义module名
1 <template>
2   <p :class="classes.msg">Hello World!</p>
3 </template>
4 
5 <style module="classes">
6 .msg {
7   color: #ff0000;
8 }
9 </style>
useCssModule
 1 <template>
 2   <div v-html="content"></div>
 3 </template>
 4 
 5 <script lang="ts">
 6 import { defineComponent, useCssModule } from 'vue'
 7 
 8 export default defineComponent({
 9   setup () {
10     // 获取样式
11     const style = useCssModule()
12 
13     // 编写模板内容
14     const content = `<p class="${style.msg}">
15       <span class="${style.text}">Hello World! —— from v-html</span>
16     </p>`
17 
18     return {
19       content,
20     }
21   }
22 })
23 </script>
24 
25 <style module>
26 .msg {
27   color: #ff0000;
28 }
29 .text {
30   font-size: 14px;
31 }
32 </style>

 

来自于: https://vue3.chengpeiquan.com/component.html#usecssmodule-new

标签:const,渲染,color,Hello,Vue3,msg,World,defineComponent,CSS
来源: https://www.cnblogs.com/googlegis/p/16460459.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有