九、Vue组件

一、组件的创建及使用
1.创建组件

src/components文件夹下创建Home.vue组件,组件的html部分需要用<template>根节点包围起来,同时可以设置组件样式以及组件函数:

<template>
    <!-- 所有的内容要被根节点包含起来 -->
    
    <div>
    
        <h2>这是一个首页组件 ---- {{msg}}</h2>
    
        <button @click="run">点击运行</button>
    
    </div>
</template>

<script>
export default {
    data() {
        return {
            msg: '我是一个组件'
        }
    },
    methods: {
        run() {
            alert(this.msg);
        }
    }
}
</script>

<style lang="scss">
    h2 {
        color: red;
    }
</style>

备注:所有引入该组件的对象中,同时引入了该组件的样式和函数,同样会生效!!!比如样式名一样时,就会继承组件的样式,但是函数名一样时不会继承(我猜测函数自带作用域,只在本组件中生效!!)

  若想组件中的样式只在该组件中生效,有两种方式:
  第一种 设置id方式:

<template>
    <!-- 所有的内容要被根节点包含起来 -->
    
    <div id="home">
    
        <h2>这是一个首页组件 ---- {{msg}}</h2>
    
        <button @click="run">点击运行</button>
    
    </div>
</template>

<script>
.......
</script>

<style lang="scss">
// 让 h2 样式对象只在该组件中生效(否则,所有引入该组件的对象都会应用h2样式)
#home {
    h2 {
        color: red;
    }
}
</style>

  第二种 设置scssscoped属性方式:

// scoped作用域
<style lang="scss" scoped>
// 让 h2 样式对象只在该组件中生效(否则,所有引入该组件的对象都会应用h2样式)
h2 {
    color: red;
}
</style>
2.引入组件、挂载组件
<script>
	// 1.引入组件
	import Home from './components/Home.vue';
	export default {
    name: 'app',
    data() {
        return {
            todo: '',
            list: []
        }
    },
    components: {
        // 2.挂载组件
        "v-home": Home
    }
}
</script>
3.使用组件
<template>
    <!-- 所有的内容要被根节点包含起来 -->
    <div>
    	<!-- 3.使用组件 -->
        <v-head></v-head>
        <h2>这是一个首页组件 ---- {{msg}}</h2>
        <button @click="run">点击运行</button>
    </div>
</template>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值