根据里德的回答,这是我最终的解决方案:
<b-btn block href="#" v-b-toggle.accordion1 variant="secondary">
Time Period
<span class="when-opened">
<font-awesome-icon icon="chevron-down" />
</span>
<span class="when-closed">
<font-awesome-icon icon="chevron-right" />
</span>
</b-btn>
<b-collapse id="accordion1" role="tabpanel">
<!-- some content -->
</b-collapse>
附加CSS:
<style scoped>
...
.collapsed > .when-opened,
:not(.collapsed) > .when-closed {
display: none;
}
...
</style>
我安装并导入了字体很棒的软件包,如这里https://fontawesome.com/how-to-use/on-the-web/using-with/vuejs和https://origin.fontawesome.com/how-to-use/with-the-api/setup/importing-icons所述.主要是进口代码.js文件,如下所示:
import Vue from 'vue'
...
import { library } from '@fortawesome/fontawesome-svg-core'
import { faChevronRight, faChevronDown } from '@fortawesome/free-solid-svg-icons'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
library.add(faChevronRight, faChevronDown);
Vue.component('font-awesome-icon', FontAwesomeIcon);
...