1 回答

TA贡献1963条经验 获得超6个赞
永远不要以这种方式改变道具。如果需要向子组件提供动态 props,请传递反应式实例。查看代码以获取进一步说明。
Vue.use(Buefy, {
defaultIconComponent: 'vue-fontawesome',
defaultIconPack: 'fas',
});
new Vue({
el: "#app",
data() {
return {
pack: "fas", // "pack" is reactive
};
},
methods: {
toggleIconFontType() {
// here the "pack" data is changed
this.pack = this.pack === "fas" ? "far" : "fas";
console.info("Icon Pack Changed", {pack: this.pack});
}
}
})
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0-2/css/all.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/buefy/0.8.20/buefy.min.js"></script>
<div id="app">
<!-- when this button is clicked, "toggleIconFontType" is invoked -->
<button @click="toggleIconFontType">Click Me</button>
<button class="button is-dark alt-dark" slot="trigger">
<!-- Here i am binding pack props with reactive data "pack" -->
<b-icon ref="bellIcon" :pack="pack" icon="bell" :class="{ 'has-update-mark' : false }"></b-icon>
</button>
</div>
添加回答
举报