8.使用scss,创建组件,scoped局部作用域

Posted xuepangzi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8.使用scss,创建组件,scoped局部作用域相关的知识,希望对你有一定的参考价值。

1.使用scss

scss是能让css从属关系看起来更加直观

在项目目录下运行安装命令:

cnpm install node-sass --save-dev
cnpm install sass-loader --save-dev

然后在项目目录中的webpack.config.js中的rules里加入配置代码:


        test: /\\.scss$/,
        loaders: [‘style‘, ‘css‘, ‘sass‘]
,

技术图片

 

 

 如果出现报错:

Module build failed: TypeError: this.getResolve is not a function

技术图片

 

 sass-loader的版本过高导致的编译错误,当前最高版本是8.x,需要退回到7.3.1运行

cnpm uninstall sass-loader(卸载当前版本)

cnpm install sass-loader@7.3.1 --save-dev

cnpm install

2.新建组件

在src目录下新建目录components,在components目录下新建组件取名Home.vue:

<template>
    <div>
        <h2>这是一个首页组件</h2>
        <button @click="run">弹出首页组件提示</button>
    </div>
</template>
<script>
export default 
  name: home,  
  data () 
    return 
        msg:首页组件
    
  ,
  methods:
    run()
        alert(this.msg)
    
  


</script>
<style lang="scss" scoped>
h2
    color: red;

</style>

3.在根组件App.vue中引用挂载组件

<template>
  <div id="app">
    <h2>msg</h2>
    <v-home></v-home>
  </div>
</template>
<script>
// 1.引入组件
// 2.挂载组件
// 3.在模板中引用
import Home from ./components/Home.vue;
export default 
  name: app,
  data () 
    return  
      msg:根组件
    
  ,
  methods:
  ,
  components:
    v-home:Home
  


</script>
<style>

</style>

技术图片

 

 组件除了可以在根组件中挂载,也可以在组件之间互相挂载。

 

以上是关于8.使用scss,创建组件,scoped局部作用域的主要内容,如果未能解决你的问题,请参考以下文章

不同预处理器less、scss等下如何写样式穿透

MyBatis 作用域(Scope)和生命周期

2019.8.2闭包,作用域

JavaScript Scope All In One

Python标准库--Scope

vue中使用css modules替代scoped