vue 获取url地址的参数_分享一个你可能用得上的Vue组件库

关注 Vue社区,回复“加群”

加入我们一起学习,天天进步

f481ed2b482c5fbd83ba4b567f817c64.png

飞跃疯人院

https://juejin.im/post/5df0f5edf265da33c54246c5

日常开发使用组件库一般都能满足大部分的需求,不过有些功能组件可能库里并没有,这里开源一些特定项目可能会使用到的组件,希望可以帮助到大家~

源码地址:https://github.com/huxiaocheng/vue-gn-components

快速上手

  • 安装

npm i vue-gn-components
  • 引入

整体引入:import VueGnComponents from "vue-gn-components";import "vue-gn-components/lib/style/index.css";Vue.use(VueGnComponents)按需引入:import { CheckIn, watermark } from "vue-gn-components";import "vue-gn-components/lib/style/index.css";Vue.use(CheckIn).use(watermark)

组件介绍

一、放大镜 (Magnifier)

1750672052f96899edb8bbc0895662f9.gif

  • 组件亮点:

无论组件的dom位置在页面何方,会准确计算鼠标位置以及自动在右侧悬浮一个查看区域,并且当右侧位置超过边界后,查看区域会自动出现在左边。

  • 组件调用:

  :boxSize="400"  :minImgUrl="require('./img/min.jpg')"  :maxImgUrl="require('./img/max.jpg')"></magnifier>
  • 参数:

boxSize: 设置放大镜主体框的大小,会自动在右侧生成一个与之同样大小的查看放大图像的悬浮框,默认500。

minImgUrl: 放大镜小图的url

maxImgUrl: 放大镜大图的url

autoReverse: 是否开启右侧距离超过边界时,悬浮框自适应在左侧。默认true

direction: 悬浮框的方向,默认right右侧。可选left

二、签到 (CheckIn)

495a050078c2caef1e928e003a260a75.gif
  • 组件亮点:

实现了功能。会将传入的一维数组的日期集合,按年月格式化为对象,在渲染某个月时,只会渲染对应当月的签到天数,数组拥有海量数据也不会大量渲染。

组件调用:

  <checkIn :checkIns="checkIns" />template>export default {  return {    checkIns: ['2019-12-15', '2019.12.18', 1576250061182]  }}
  • 参数:

checkIns: 传入一个签到日期的一维数组集合,可以是时间戳、2019-11-112019.11.11格式。

size: 签到组件的整体大小,默认500,大小自适应。

三、图片标签 (ImgLabel)

404b71a488ff54af0bfec2cacf23b962.gif
  • 组件亮点:

实现了功能。右击创建标签,双击编辑标签,可以单个移除,也可以全部清除,保存到本地缓存,导出为图片。

  • 组件调用:

:src="require('./img/timg.jpg')">
  • 参数:

isShowSaveBtn: 是否显示保存按钮,默认true,会将标签数据保存到本地缓存。

src: 需要添加标签图片的url

width:图片的宽,默认500。

theme: 主题色,默认#3b8bcc

四、滑动验证(SlideCheck)

bea09e3d76dc9ab137e412f2a1e0b7eb.gif
  • 组件亮点:

仿某电商的注册验证,不过使用纯canvas进行绘制,包括抠出来的拼图以及图片的渲染。而且在验证成功派发的事件里会记录用户滑动过程中上下分别抖动的最大距离。(可能机器是不会抖的,增加了一点点的安全性)

  • 组件调用:

  :width="300"   :height="300"   :src="src"   @success="success"   @fail="fail">export default {  data() {    src: [      require("./img/timg.jpg"),      require("./img/min.jpg")    ]  }}
  • 参数:

radius: 拼图突出圆心的半径值,也就是绘制的拼图的大小,默认10

src: 单个url或多个url数组的集合,当为多个时,验证失败或成功都会随机选择另外一张图片。

width: 验证区域的宽,是canvas容器的width

height: 验证区域的高。

theme: 主题色,默认#369

  • 事件:

success: 验证成功的回调,会派发一个对象出来,分别为上下波动的最大值。

fail: 验证没通过的回调。

五、倒计时(countdown)

cbb62d10d618ea59a10cc9a08576844d.gif
  • 组件亮点:

两种模式,一种是传入时间戳或2022-5-12-17-202022.5.12.17.20这样大于当前时间的格式。另一种是传入60这样的秒数,开始倒数之后刷新页面不会重新计时。没有做任何css的美化,只使用作用域插槽派发出对应的值。

  • 组件使用:

<template><div>  <countdown :time="date">    <template v-slot="{date}">      {{date.year}}年-{{date.month}}月-{{date.date}}日-{{date.hours}}小时-{{date.minutes}}分钟-{{date.seconds}}秒    template>  countdown>  <countdown isSMSMode :totalTime="timeLeft">    <template v-slot="{date}">{{date.timeLeft}}秒template>  countdown>div>template>export default {  data() {    return {      date: "2022.11.11",      timeLeft: 60    };  }
  • 参数:

time:传入大于当前时间的时间格式。

isSMSMode: 是否秒数倒数模式,默认false

totalTime: 倒数模式的最大秒数。

  • 作用域插槽

year: 年;

month: 月;

date: 日;

hours: 小时;

minutes: 分钟;

seconds: 秒钟;

timeLeft: 倒数剩余秒数.

  • 事件:

end:倒计时结束。

  • 方法:

start:开始。

pause:暂停。

六、水印(watermark)

01fc259448b04c061ed038c7892903f6.gif
  • 指令亮点:

采用自定义指令形式,会将指令作用在img上的标签最终替换为canvas标签。使用离屏canvas进行绘制,一个绘制图像,另一个绘制水印,最终合并为一个canvas标签。

  • 指令调用:

  <div>    <img v-watermark="{src: src, text: 'hello world'}"/>  div>template>export default {  data() {    return {      src: require("./img/min.jpg")    };  }}
  • 指令参数:

src: 图片的url

text: 水印的文字。

opacity: 水印的透明度,默认0.3

rotate: 旋转角度,默认20

fontSize: 水印字体大小,默认20

type: 水印绘制的方式,默认是repeat全屏重复绘制。只绘制一条水印时,可选left-top左上,right-top右上,right-bottom右小,left-bottom左下。

❤️ 看完两件事

如果你觉得这篇内容对你挺有启发,我想邀请你帮我两个小忙:

  1. 点个「在看」,让更多的人也能看到这篇内容(喜欢不点在看,都是耍流氓 -_-)

  2. 关注公众号「Vue社区」,每周重点攻克一个前端面试重难点,

    公众号后台回复「电子书」即可免费获取 27本 精选的前端电子书!

    回复「100」免费获取 100本 最棒的前端电子书!

61aca1240e70aa16aee1f94e9e97fdbc.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值