網(wǎng)站首頁(yè) Vue 正文
背景/前言
之前的一個(gè)功能需求,需要在頁(yè)面接收消息,一旦有了新消息之后,需要用鈴聲進(jìn)行提醒。
因?yàn)闆](méi)有找到類(lèi)似的比較便捷的組件,所以就自己寫(xiě)了一個(gè)。然后想著能不能?chē)L試下做成一個(gè)公共的組件,發(fā)布出去讓其他開(kāi)發(fā)者也用用?于是就試著寫(xiě)了一個(gè)項(xiàng)目(項(xiàng)目地址在最后),發(fā)布成了npm包。
目前這個(gè)組件已經(jīng)發(fā)布到了npm上,歡迎大家試用。如果有好的建議,或者找到了更好的類(lèi)似組件,歡迎指出和分享~
下面是使用文檔:
組件的使用
安裝
npm i easy-ring
加載
1)全局使用
在vue-cli項(xiàng)目main.js上當(dāng)作插件使用,即可直接在vue單文件組件使用
// main.js import EasyRing from 'easy-ring' Vue.use(EasyRing)
<!-- 直接使用,無(wú)需引入 --> <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 } ... }
組件生效
- 第一步. 開(kāi)啟鈴聲:將open參數(shù)設(shè)為true
- 第二步. 響鈴:將ring參數(shù)設(shè)為true
- 第三步. 關(guān)鈴:將ring參數(shù)設(shè)為false
PS:
- 開(kāi)啟鈴聲這一步,需要放到一個(gè)按鈕下埋點(diǎn)進(jìn)行觸發(fā)(原因解釋見(jiàn)下文 "關(guān)于open參數(shù)的解釋")。為了提升自己產(chǎn)品的使用體驗(yàn),可以做到用戶(hù)無(wú)感知,例如在登錄時(shí),用戶(hù)點(diǎn)擊“登錄”按鈕即可設(shè)置open參數(shù)為true
- 根據(jù)自己的需求自行決定何時(shí)響鈴、何時(shí)關(guān)鈴,將ring參數(shù)的更改放到對(duì)應(yīng)邏輯下即可
組件參數(shù)
參數(shù)名 | 類(lèi)型 | 默認(rèn)值 | 說(shuō)明 |
---|---|---|---|
open | Boolean | false | 開(kāi)啟鈴聲 |
ring | Boolean | false | 是否響鈴 |
src | String | 默認(rèn)鈴聲 | 鈴聲音頻文件地址 |
使用默認(rèn)音效
若想使用默認(rèn)音效,請(qǐng)?jiān)?/main.js文件中引入默認(rèn)音效
// 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]' }, }, ] } }
需要添加這個(gè)配置的原因是,vue-cli默認(rèn)會(huì)對(duì)所有打包的靜態(tài)資源加上hash版本號(hào),這樣easy-ring就無(wú)法獲取到你目錄下的默認(rèn)音頻文件的地址。
加上這一項(xiàng)file-loader的配置后,easy-ring的默認(rèn)音頻文件就不會(huì)帶上hash版本號(hào),easy-ring就能找到它。
關(guān)于open參數(shù)的解釋
因?yàn)楫?dāng)前多數(shù)瀏覽器不支持自動(dòng)播放音頻,需要用戶(hù)自己主動(dòng)觸發(fā)播放音頻才行。這一過(guò)程需要放在諸如click的交互事件里,因此我們需要一個(gè)按鈕之類(lèi)的東西來(lái)觸發(fā)這一行為。
但是,你可以通過(guò)一些交互來(lái)設(shè)計(jì)這一行為,從而提升用戶(hù)體驗(yàn),甚至讓用戶(hù)對(duì)此無(wú)感知。例如:在登錄時(shí),在用戶(hù)點(diǎn)擊“登錄”按鈕時(shí),在代碼里設(shè)置open參數(shù)為true。
項(xiàng)目地址
github上的地址:easy-ring
訪(fǎng)問(wèn)不了github的可以試試這個(gè)鏡像地址:fastgit鏡像
一共有兩個(gè)項(xiàng)目文件:
- easy-ring-build:構(gòu)建npm發(fā)布包
- easy-ring-demo:使用范例
原文鏈接:https://segmentfault.com/a/1190000041323847
相關(guān)推薦
- 2022-06-28 使用?Docker?Compose?構(gòu)建復(fù)雜的多容器?App的方法_docker
- 2023-02-10 Jupyter導(dǎo)入自定義模塊及導(dǎo)入后TypeError錯(cuò)誤問(wèn)題及解決_python
- 2022-11-23 Golang?官方依賴(lài)注入工具wire示例詳解_Golang
- 2023-07-24 解碼方法decodedURIComponent
- 2022-12-24 C++中的模板類(lèi)繼承和成員訪(fǎng)問(wèn)問(wèn)題_C 語(yǔ)言
- 2022-12-06 Python之列表的append()方法最容易踩的坑_python
- 2022-01-09 出現(xiàn)Got permission denied while trying to connect to
- 2022-06-12 python實(shí)現(xiàn)微信小程序的多種支付方式_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支