关于前端:一个Vue铃声提示音组件

59次阅读

共计 1578 个字符,预计需要花费 4 分钟才能阅读完成。

背景 / 前言

之前的一个性能需要,须要在页面接管音讯,一旦有了新音讯之后,须要用铃声进行揭示。

因为没有找到相似的比拟便捷的组件,所以就本人写了一个。而后想着能不能尝试下做成一个公共的组件,公布进来让其余开发者也用用?于是就试着写了一个我的项目(我的项目地址在最初),公布成了 npm 包。

目前这个组件曾经公布到了 npm 上,欢送大家试用。如果有好的倡议,或者找到了更好的相似组件,欢送指出和分享~

上面是应用文档:

组件的应用

装置

npm i easy-ring

加载

1)全局应用

在 vue-cli 我的项目 main.js 上当作插件应用,即可间接在 vue 单文件组件应用

// main.js
import EasyRing from 'easy-ring'
Vue.use(EasyRing)
<!-- 间接应用,无需引入 -->
<template>
    <easy-ring
        :open="open"
        :ring="ring"
        :src="src"
    />
</template>

export default {...}
2)import 形式

在 vue 单文件组件里引入

<template>
    <easy-ring
        :open="open"
        :ring="ring"
        :src="src"
    />
</template>

import EasyRing from 'easy-ring'
export default {
    components: {EasyRing}
    ...
}

组件失效

  • 第一步. 开启铃声:将 open 参数设为 true
  • 第二步. 响铃:将 ring 参数设为 true
  • 第三步. 关铃:将 ring 参数设为 false

PS:

  • 开启铃声这一步,须要放到一个按钮下埋点进行触发(起因解释见下文 “ 对于 open 参数的解释 ”)。为了晋升本人产品的应用体验,能够做到用户无感知,例如在登录时,用户点击“登录”按钮即可设置 open 参数为 true
  • 依据本人的需要自行决定何时响铃、何时关铃,将 ring 参数的更改放到对应逻辑下即可

组件参数

参数名 类型 默认值 阐明
open Boolean false 开启铃声
ring Boolean false 是否响铃
src String 默认铃声 铃声音频文件地址

应用默认音效

若想应用默认音效,请在./main.js 文件中引入默认音效

// main.js
require('easy-ring/easy-ring-default.wav')

而后将这段代码合并到你的 vue.config.js 配置中:

configureWebpack: {
        module: {
            rules: [
                {test: /easy-ring-default\.(wav)$/i,
                    loader: 'file-loader',
                    options: {name: 'media/[name].[ext]'
                    },
                },
          ]
        }
    }

须要增加这个配置的起因是,vue-cli 默认会对所有打包的动态资源加上 hash 版本号,这样 easy-ring 就无奈获取到你目录下的默认音频文件的地址。

加上这一项 file-loader 的配置后,easy-ring 的默认音频文件就不会带上 hash 版本号,easy-ring 就能找到它。

对于 open 参数的解释

因为以后少数浏览器不反对自动播放音频,须要用户本人被动触发播放音频才行。这一过程须要放在诸如 click 的交互事件里,因而咱们须要一个按钮之类的货色来触发这一行为。

然而,你能够通过一些交互来设计这一行为,从而晋升用户体验,甚至让用户对此无感知。例如:在登录时,在用户点击“登录”按钮时,在代码里设置 open 参数为 true。

我的项目地址

github 上的地址:easy-ring

拜访不了 github 的能够试试这个镜像地址:fastgit 镜像

一共有两个我的项目文件:

  • easy-ring-build:构建 npm 公布包
  • easy-ring-demo:应用范例

欢送大家拜访交换😀。相干的阐明和介绍,能够别离去看它们里边的 README.md

正文完
 0