npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

vtip

v1.0.6

Published

A simple tooltip based Vue

Downloads

216

Readme

Vtip 文档

项目地址:https://github.com/kinglisky/vtip

文档地址: https://kinglisky.github.io/vtip

开始使用

安装:

npm i vtip -S

使用:

import Vtip from 'vtip'
import 'vtip/lib/index.min.css'
// 注册指令使用
Vue.use(Vtip.directive)
// 工具函数调用
Vue.prototype.$tip = Vtip.tip

指令使用

推荐的使用方式为注册指令来使用,默认的指令名称为 v-tip。如果想用其他名称可以在 Vue.use 进行配置。

Vue.use(Vtip.directive, { directiveName: 'otherName' })

如果只是作为过长文案提示,可以直接绑定一个需要显示文案信息来使用:

<span v-tip="msg">{{ msg }}</span>

在线栗子 🌰 :

指标的修饰符:

<span v-tip.top.dark.click="msg">{{ msg }}</span>

click: 点击触发,默认由 hover 触发

dark:使用黑色主题,默认为 light

top right bottom left: 可用于设置 tip 优先显示方向

transition: 是否为 tip 设置 tranfrom 过渡效果

如果还想进一步自定义 tip 显示,v-tip 指令支持绑定一个配置对象进行更配置:

<button v-tip.right="options">
  指令使用-绑定一个对象
</button>

对应的 options 详细配置说明可以参考参数说明

const options = {
  title: '这里是标题',
  content: '显示内容',
  theme: 'dark',
  //  tip 的容器,在不设置的情况下,tip 会自动在参考元素的父级元素上面查找合适的容器,但推荐手动设置一个 tip 对象容器
  container: document.body,
  customProps: { msg: '自定义渲染' },
  // 这里通过 customComponent 定义了一个自定义组件
  customComponent: Vue.extend({
    props: ['msg'],
    render (h) {
      return h('span', this.msg)
    }
  }),
  placements: ['top', 'buttom'],
  duration: 400,
  transition: true
  ...
}

可以看下面的栗子 🌰 :

一般情况下指令都能满足 tip 的显示需要,但有时可能需要通过工具函数的形式来调用 tip 显示,这时就可以使用 Vtip 提供的 tip 工具函数了,v-tip 的指令是基于 tip 函数实现的。

工具函数

Vtip 有提供一个工具函数,可直接调用 tip 工具函数进行内容的展示:

Vue.prototype.$tip = Vtip.tip

自定义组件 custom.vue

<template>
  <div>
    <span>{{ msg }}</span>
    <button @click="handler">确认</button>
  </div>
</template>

<script>
export default {
  props: {
    msg: String,
    handler: Function
  },

  created () {
    this.$emit('created')
  }
}
</script>
import Custom from 'components/custom.vue'
const tipInstance = this.$tip({
  target: this.$el, // tip 的参考元素
  width: 400,
  content: '提示显示内容',
  // customProps 传递 customComponent 组件的需要的 props
  customProps: {
    msg: '自定义渲染内容',
    handler () {
      console.log('click')
    }
  },
  // 用于监听自定义组件的 emit 事件
  customListeners: {
    created () {
      console.log('created')
    }
  }
  customComponent: Custom
  ...
})

// 隐藏 tip
tipInstance.hiddenTip()
tipInstance.updateTip()
...

作为工具函数调用时会返回一个 tip 的组件实例,可直接调用组件的方法对 tip 实例进行控制操作。

在线栗子 🌰 :

配置参数

| 属性 | 说明 | 默认 | | --- | ---- | --- | | title | String 内容标题 | '' | | content| String 显示的内容 | '' | | theme| String 主题色调 light dark | 'light' | | customComponent | [String, Function, Object] 工具函数与指令调用时,可以通过 customComponent 传递自定义组件来渲染自定义内容| '' | | customProps | Object 附加到 customComponent 自定义组件 props 上面的值 | {} | | customListeners | Object 用监听 customComponent 自定义组件内部 emit 的事件 注意:这里使用了 vue 2.4 新加 v-on 新语法, 小于 2.4 的版本的 vue 不支持此特性,若有需要处理自定义组件的事件可以通过 customProps 传入处理函数实现| {} | | target | Element Objcet tip 绑定的目标元素 | null | | container | Element Objcet tip 父级容器,未设置容器是 tip 会自动从 target 元素的父级容器中挑选出一个合适的节点作为 tip 的容器 推荐为 tip 手动指定一个显示容器 | - | | placements | Array 用于设置 tip 显示的优先级 | ['top', 'right', 'bottom', 'left'] | | duration | Number tip 窗口多久后自动消失 | 400 | | arrowsSize | Number 提示用的小箭头大小 | 8 | | width | [String, Number] 组件的宽度 | 300px | | height | [String, Number] 内容的高度 | auto| | zIndex | Number tip 的 z-index | 9999 | | customClass | String 组件自定义 class 的类名 | '' | | transition | Boolean 是否为组件添加 transfrom 过渡 | false |

customComponent

customComponent 用于往 tip 中塞一些自定义的组件,内部实现实际上使用 <component> 组件:

<component :is="customComponent" v-bind="customProps" v-on="customListeners"></component>

所以 customComponent 的值与 <component> 组件的 is 属性相同。

customProps

customProps 其实就是附加给自定义组件 customComponent 上的 props 参数,有时候可以将处理函数以 props 的形式传入便于处理自定义组件内部的事件。

customListeners

customListeners 基于 Vue 2.4 引入 v-on 新语法实现,v-on 直接可直接绑定一个事件对象如:{ mousedown: doThis, mouseup: doThat } 。通过传入的 customListeners 可以方便的处理自定义组件内部的 emit 出的事件。当 Vue 版本小于 2.4 不支持此语法时,我们可以通过 customComponent 传处理函数实现事件处理。

placements

placements 用于限制 tip 的显示方向与各个方向的优先级。

例如 placements 设置为 ['top', 'right'] tip 会优先尝试在 top 与 right 方向上显示 tip。

如果 top 与 right 方向上都可显示 tip 内容,优先在 top 方向上显示。

如果 top 与 right 上都不足以容纳 tip 内容,则会在 tip 会自动在选择一个可容纳 tip 方向展示。

container

container tip 的容器对象,不设置时组件会在参考元素的父级寻找合适的节点作为容器,平时使用的还是推荐手动设置一个容器

组件方法

| 方法 | 说明 | 参数 | | --- | --- | --- | | showTip() | 显示 tip | - | | hiddenTip(immedia) | 隐藏 tip | immedia 是否立即隐藏 tip | | updateTip() | 显示更新 tip 位置 | - | | destroy() | 销毁 tip 实例,一般不需要调用 |-|

组件还有一些其他方法,一般使用不到,具体可以到源码看看。

附:组件内部有监听 customComponent 自定义组件 emit 出的 hidden-tip 事件与 update-tip 事件,对应触发 hiddenTipupdateTip 方法。