美文网首页
[vue3快速入门] 21.vue单文件组件中style标签的使

[vue3快速入门] 21.vue单文件组件中style标签的使

作者: 林哥学前端 | 来源:发表于2021-09-19 09:13 被阅读0次

我们之前写的App.vue也好,组件也好,这些以.vue结尾的文件叫做vue单文件组件
在.vue文件中,template和script中我们都写了一下代码了,唯独没有怎么理会style标签,这节课中我们介绍一下

1.scoped

在style标签上可以添加一个scoped属性,表示这个style标签里面的css只会应用到当前的组件上,

<style scoped>
.example {
  color: red;
}
</style>

我们来写一个例子就明白了,
先来写两个组件,componentA和componentB,他们内容都一样,但是文字的颜色不同
componentA:

<template>
  <div class="text">这是第一个组件</div>
</template>

<script>
export default {}
</script>

<style scoped>
.text {
  color: red;
}
</style>

componentB

<template>
  <div class="text">这是第二个组件</div>
</template>

<script>
export default {}
</script>

<style scoped>
.text {
  color: green;
}
</style>

要注意到,用到的class名称,.text 是相同的,
在App.vue中使用他们

<template>
  <componentA></componentA>
  <componentB></componentB>
</template>

<script>
// style标签使用
import componentA from './components/componentA.vue'
import componentB from './components/componentB.vue'

export default {
  name: 'App',
  components: {
    componentA,
    componentB,
  },
}
</script>

<style></style>

我们在浏览器中查看结果



虽然class名字一样,但它们互不影响,如果把scoped去掉,我们发现文字都变成了红色
这个特性非常好,在开发时我们就不用担心不同组件里class命名冲突了,开发更顺心

关于scoped还好多进阶内容,大家在熟练掌握以后可以到官网学习。

2.lang属性

lang是language语言的简写,可以用来指定style里用哪种css语言,
如果没有这个属性,那么style里就是普通的css,
如果我们使用css预编译语言,比如scss,可以指定

<style scoped lang="scss">
.text {
  color: red;
}
</style>

或者less,或者stylus,
比如指定使用scss,会提示找不到sass-loader


安装sass-loader 和 node-sass

npm i sass-loader node-sass -D

发现还是报错



安装指定版本的sass-loader

npm i sass-loader@10.x -D

然后在重新启动我们的项目

npm run serve

这样就OK了,

3.写多个style标签

在一个.vue单文件组件中,可以写多个style标签

<style scoped lang="scss">
.text {
  color: red;
}
</style>

<style>
.text {
  font-weight: 700;
}
</style>

相关文章

  • [vue3快速入门] 21.vue单文件组件中style标签的使

    我们之前写的App.vue也好,组件也好,这些以.vue结尾的文件叫做vue单文件组件在.vue文件中,templ...

  • CSS引入问题

    CSS使用问题 在单文件组件中,编写的样式可以保证只对当前组件的模板具有效果,添加scoped属性到style标签...

  • Jsx语法

    在jsx文件里写style: 组件类中添加proptype 组件对象添加state属性 将数组变为标签 数组中的标...

  • 2021-07-17 Vue 3.0新特性

    vitevite 是一个基于 Vue3 单文件组件的非打包开发服务器,它做到了本地快速开发启动。创建一个vue的项...

  • vue学习(67)vue3中的新组件

    Fragment 在Vue2中: 组件必须有一个根标签 在Vue3中: 组件可以没有根标签, 内部会将多个标签包含...

  • vue3较vue2的特别之处 - fragement/ tele

    Fragment 在Vue2中: 组件必须有一个根标签在Vue3中: 组件可以没有根标签, 内部会将多个标签包含在...

  • style和theme

    style style样式资源,定义在values文件夹下,style.xml中。1 基本结构style标签中,定...

  • vue中的scoped底层怎么实现的,为何慎用

    scoped的作用: 在vue组件中,为了使样式私有化(模块化),不对全局造成污染,可以在 style 标签上添加...

  • Vue3新组件

    Fragment(片断) 在Vue2中: 组件必须有一个根标签 在Vue3中: 组件可以没有根标签, 内部会将多个...

  • Vue3 script-setup 超清新单文件写法

    Vue3刚出来的时候,我觉得 vue-hooks 时代来了,终于可以抛弃单文件组件的写法,彻底融入到函数式编程中,...

网友评论

      本文标题:[vue3快速入门] 21.vue单文件组件中style标签的使

      本文链接:https://www.haomeiwen.com/subject/saorgltx.html