如何使用 BootstrapVue 工具提示创建 Vue Tooltip 组件

Posted

技术标签:

【中文标题】如何使用 BootstrapVue 工具提示创建 Vue Tooltip 组件【英文标题】:How to create a Vue Tooltip component using BootstrapVue tooltip 【发布时间】:2020-11-26 04:08:30 【问题描述】:

我是 Vue 新手,我不经常使用 Bootstrap,所以请原谅我的新手问题,我正在尝试创建一个 Vue 工具提示组件,我已经创建了一个以使用 css 来表现我想要的方式,但是,我遇到了一些可访问性问题,所以我决定改用 BootstrapVue 工具提示,但我不知道如何使用 Bootstrap 创建这个组件。 这基本上是我使用 css 的 Tooltip.vue 组件:

<template>
      <div :class="`tooltip $position`">
        <slot></slot>
        <span class="tooltip-text">content</span>
      </div>
</template>

<script>  
export default 
  name: 'Tooltip',


  props: 
    position: String,
    content: String,
  

;
</script>

<style lang="scss">
.tooltip 
.......
</style>

然后我像这样在其他地方导入和使用我的组件:

<tooltip position="right" content="Right tooltip">Hover me</tooltip>

我创建了一个 TooltipBootstrap.vue 组件,希望具有相同的结构但使用 Bootstrap,但我不知道会怎样,这是我开始的:

我 npm 安装了 bootstrap-vue

 <template>
 <div>
    <button v-b-tooltip.hover.$position="'$content'"></button>
  </div>
 </template>

<script>

  import VBTooltip from 'bootstrap-vue';

  export default 
    name: 'TooltipBootstrat',

      components: 
        VBTooltip,

    ,
    props: 
      position: String,
      content: String,
    

  ;
  </script>

我正在阅读引导文档:https://bootstrap-vue.org/docs/directives/tooltip,但我不知道我是否按照它应该使用的方式使用它,所以我有点迷茫,不胜感激任何帮助/建议,谢谢!

【问题讨论】:

【参考方案1】:

BootstrapVue 提供&lt;b-tooltip&gt; 组件和v-b-tooltip 指令(document 中的首选方法)。您可以在文档中玩转。

简单来说,您可以在任何元素上使用v-b-tooltip 指令,非常方便。但是对于&lt;b-tooltip&gt; 组件,您必须设置target 来识别目标以激活工具提示。

因此,在您的情况下,您可以执行以下操作:

<template>
  <div v-b-tooltip=" title: content, placement: position "> 
    <slot></slot>
  </div>
</template>

<script>
import  VBTooltip  from 'bootstrap-vue'

export default 
  name: 'Tooltip',
  directives: 
    'b-tooltip': VBTooltip,
  ,
  props: 
    position: String,
    content: String,
  
;
</script>

【讨论】:

以上是关于如何使用 BootstrapVue 工具提示创建 Vue Tooltip 组件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 BootstrapVue 中使用分页

Bootstrap-Vue中如何增加tooltip的宽度

如何将 BootstrapVue 在 Nuxt.js 中使用 Purgecss 所需的所有内容列入白名单

如何使用 VeeValidate 验证来自 BootstrapVue 表单的输入?

如何在 BootstrapVue 元素上使用 Vue Test Utils 触发事件?

如何将 BootstrapVue 中的道具传递给路由器链接