欢迎来到代码驿站!

vue

当前位置:首页 > 网页前端 > vue

Vue组件化学习之scoped详解

时间:2022-11-25 10:40:43|栏目:vue|点击:

简介

主要介绍scoped的作用。

先弄一个案例:

在这里插入图片描述

main.js:

//引入vue依赖
import Vue from 'vue'
//引入组件App
import App from './App.vue'
// 关闭生产提示
Vue.config.productionTip = false
//创建一个vue实例
new Vue({
  //这个目前还没学过,先知道他的作用是将app放入容器中。
  render: h => h(App),
  //配置该vue实例管理id为app的容器
}).$mount('#app')

App.vue:

<template>
    <!-- 编写结构 -->
    <div>
        <school></school>
    <hr>
    <student></student>
    </div>
</template>
<script>
// 原本的引入
// import school from "./School.vue"
// import student from "./Student.vue"
//修改后的
//引入school组件和student组件,涉及es模块化的语法
import school from "./components/School.vue"
import student from "./components/Student.vue"
export default {

    components:{
        //注册组件
        school,
        student
    }
}
</script>
<style>
</style>

School.vue:

<template>
    <!-- 编写组件结构代码,也就是html代码 -->
    <!-- 需要一个div括住,也就是只能有一个根元素,一般使用div -->
    <div class="orange">
        <div>学校:{{schoolName}}</div>
        <div>地址:{{schoolAddress}}</div>
    </div>
</template>
<script>
//交互代码编写的地方,需要暴露出去给其他地方引入
//这个需要有一点es6模块化的知识,这里一般使用默认暴露,因为这是单文件组件,只需要暴露一个组件对象,
//并且引入默认暴露的组件引入语法比较简单。
export default {
    data() {
        return {
        schoolName:"尚硅谷",
        schoolAddress:"北京"
        }
    },
}
</script>
<style>
    /* 编写样式的地方 */
    .orange{
        background-color: orange;
    }
</style>

student.vue:

<template>
    <!-- 编写组件结构代码,也就是html代码 -->
    <!-- 需要一个div括住,也就是只能有一个根元素,一般使用div -->
    <div class="orange">
        <div>学生姓名:{{studentName}}</div>
        <div>年龄:{{studentAge}}</div>
    </div>
</template>
<script>
//交互代码编写的地方,需要暴露出去给其他地方引入
//这个需要有一点es6模块化的知识,这里一般使用默认暴露,因为这是单文件组件,只需要暴露一个组件对象,
//并且引入默认暴露的组件引入语法比较简单。
export default {
    data() {
        return {
        studentName:"张三",
        studentAge:18
        }
    },
}
</script>
<style>
    /* 编写样式的地方 */
    .orange{
        background-color: gray;
    }
</style>

效果:

在这里插入图片描述

看两个组件的样式代码,都使用了同名的orange类来设置样式,但是一个设置背景颜色为橙色,一个为灰色,父组件App最后会汇总所有子组件中的样式,这样的话,这两个样式设置就冲突了,所以导致School组件的背景色本来应该是橙色的,但是变成灰色了。

所以,引入scoped的作用:使样式在局部生效,防止冲突。

添加在style标签中的,

在这里插入图片描述

结果:

在这里插入图片描述

总结

上一篇:解决element-ui中下拉菜单子选项click事件不触发的问题

栏    目:vue

下一篇:Vue中事件总线(eventBus)的深入详解及使用

本文标题:Vue组件化学习之scoped详解

本文地址:http://www.codeinn.net/misctech/219847.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有