1. 首页>
  2. 技术文章>
  3. vue学习第12天

vue学习第12天

10/30/23 9:29:07 PM 浏览 866 评论 0

vue

组件的样式冲突scoped
默认情况下写在组件中的样式会全局生效,因此会很容易造成多个组件之间的样式冲突问题,可以给组件加上scoped属性,可以让样式只作用于当前组件。

scoped原理?
1.当前组件内标签都被添加data-v-hash值的属性。
2.css选择器都被添加[data-v-hash值]的属性选择器。

组件内的data是一个函数:

export default {
  data(){
    return{
      name:"菜单"
    }
  }
}

父和子组件通讯:
子组件:

<template>
  <div>{{ title }} <button @click="ChangeTitle">修改</button></div>
</template>
<script>
export default {
  //通过prop可以得到父组件的属性
  props: ["title"],
  methods:{
    ChangeTitle(){
      //通过$.emit可以往父组件传递方法
      this.$emit("ParentChangeTitle","来自子组件的修改");
    }
  }
};
</script>

父组件:

<template>
  <div id="app">
    <CommonFooter :title="MyTitle" @ParentChangeTitle="handleChange"></CommonFooter>
  </div>
</template>
<script>
import CommonFooter from './components/CommonFooter.vue'
export default {
  name: 'App',
  components: {
    CommonFooter
  },
  data(){
    return {
      MyTitle : "测试父传子通讯"
    }
  },
  methods:{
    handleChange (obj){
      this.MyTitle = obj;
    }
  }
}
</script>


网友讨论