使用自定义的vue组件,如何在使用时设置组件内部的指定元素的外观?

我开发一个组件,组件内部有一些元素,给该这些元素默认的style,或者class(在vue文件内设置)。

我以后要使用该组件的时候,可能要改变组件内的某些元素的外观显示,但不想进入组件vue文件修改,我想直接在使用它的父组件的文件内修改外观显示。想使用类似设置style的配置方式,这样比较便捷

比如自定义组件,内部有一个<button style="color:red,bgcolor:black">{{title}}</button>和其他元素。该组件内部的button元素绑定了内部的事件

使用该自定义组件时,直接在父组件修改,该自定义组件内部的button的外观显示,这个怎么做?

一种方式,使用json设置style,通过prop传入子组件,但这个配置感觉不如使用css方式那样方法。有其他的方法吗?使用类似css或设置html标签的style的配置方式


回答:

子组件使用插槽, button传进去: https://cn.vuejs.org/guide/components/slots.html#slots

使用自定义的vue组件,如何在使用时设置组件内部的指定元素的外观?

<template>

<slot></slot>

</template>

<script>

export default {

mounted () {

document.querySelector('#button').addEventListener('click', () => {

console.log("点击了");

})

}

}

</script>

使用自定义的vue组件,如何在使用时设置组件内部的指定元素的外观?


回答:

给组件传入一个自定义 class 的prop

// child

<div :class="[ 'child', customClass ]">

<button>你好</button>

</div>

<script setup>

const props = defineProps({

customClass: {

type: String,

default: ""

}

});

</script>

// parent

<Child custom-class="my_class" />

以上是 使用自定义的vue组件,如何在使用时设置组件内部的指定元素的外观? 的全部内容, 来源链接: utcz.com/p/933759.html

回到顶部