Ежедневная разработка и использование библиотек компонентов, как правило, может удовлетворить большинство потребностей, но некоторые функциональные компоненты могут отсутствовать в библиотеке.Вот некоторые компоненты с открытым исходным кодом, которые могут использоваться в конкретных проектах, я надеюсь помочь всем~
Начать быстро
- Установить
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)
Адрес источника
адрес исходного кода vue-gn-components
Введение компонента
1. Лупа
- Установка компонента:
import { Magnifier } from 'vue-gn-components';
Vue.use(Magnifier)
- Особенности компонента:
независимо от компонентаdomТам, где местоположение на странице, будет автоматически и точно рассчитать положение мыши справа, чтобы просмотреть область подвески, а когда правильное положение по границе, область просмотра появится автоматически слева.
- Компонентный звонок:
<magnifier
:boxSize="400"
:minImgUrl="require('./img/min.jpg')"
:maxImgUrl="require('./img/max.jpg')"
></magnifier>
- параметр:
boxSize: Установите размер основной рамки увеличительного стекла, и плавающая рамка того же размера будет автоматически создана с правой стороны для просмотра увеличенного изображения, по умолчанию 500.
minImgUrl: эскиз увеличительного стеклаurl.
maxImgUrl: увеличительное стекло для увеличения изображенияurl.
autoReverse: Нужно ли открывать нужное расстояние за границу, адаптивная подвеска рамы слева. По умолчаниюtrue.
direction: Направление плавающей рамки, по умолчаниюrightВерно. необязательныйleft.
2. Регистрация
- Установка компонента:
import { CheckIn } from 'vue-gn-components';
Vue.use(CheckIn)
- Особенности компонента:
реализована функция. Коллекция дат входящего одномерного массива будет отформатирована как объект по годам и месяцам.При отображении определенного месяца будет отображаться только количество дней регистрации, соответствующих месяцу, и массив не будет отображать большой объем данных, если он имеет большой объем данных.
Вызов компонента:
<template>
<check-in :checkIns="checkIns" />
</template>
export default {
return {
checkIns: ['2019-12-15', '2019.12.18', 1576250061182]
}
}
- параметр:
checkIns: передать набор одномерных массивов дат регистрации, которые могут быть метками времени,2019-11-11,2019.11.11Формат.
size: общий размер компонента возврата, по умолчанию500Размер адаптации.
3. Метка изображения (ImgLabel)
- Установка компонента:
import { ImgLabel } from 'vue-gn-components';
Vue.use(ImgLabel)
- Особенности компонента:
реализована функция. Щелкните правой кнопкой мыши, чтобы создать тег, дважды щелкните, чтобы отредактировать тег, вы можете удалить его по отдельности или очистить все, сохранить его в локальном кеше и экспортировать в виде изображения.
- Вызов компонента:
<img-label :src="require('./img/timg.jpg')"></img-label>
- параметр:
isShowSaveBtn: Отображать ли кнопку сохранения, по умолчаниюtrue, который сохранит данные тега в локальном кэше.
src: нужно добавить изображение меткиurl.
width: Ширина изображения, по умолчанию 500.
theme: цвет темы, по умолчанию#3b8bcc.
В-четвертых, проверка слайдов (SlideCheck)
- Установка компонента:
import { SlideCheck } from 'vue-gn-components';
Vue.use(SlideCheck)
- Особенности компонента:
Он имитирует проверку регистрации бизнеса электронной коммерции, но использует чистыйcanvasРисование, в том числе вырезание головоломок и рендеринг картинок. И в случае успешной отправки проверки будет зафиксировано максимальное расстояние, на которое пользователь качается вверх-вниз в процессе скольжения. (Возможно машина не будет трястись, добавив немного безопасности)
- Вызов компонента:
<slide-check
:width="300"
:height="300"
:src="src"
@success="success"
@fail="fail">
</slide-check>
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: Обратный вызов для неудачной проверки.
5. Обратный отсчет
- Установка компонента:
import { Countdown } from 'vue-gn-components';
Vue.use(Countdown)
- Особенности компонента:
Два режима, один - входящая временная метка или2022-5-12-17-20или2022.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:Пауза.
6. Водяной знак
- Установка компонента:
import { watermark } from 'vue-gn-components';
Vue.use(watermark)
- Основные моменты инструкции:
В виде пользовательской инструкции инструкция будет применена кimgЭтикетки со временем заменяются наcanvasЭтикетка. Использовать за кадромcanvasрисовать, один рисует изображение, другой рисует водяной знак и, наконец, сливается в одинcanvasЭтикетка.
- Вызов команды:
<template>
<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Нижняя левая.
Семь, перетащите компоненты (DragWrap/DragItem)
- Установка компонента:
import { DragWrap, DragItem } from 'vue-gn-components';
Vue.use(DragWrap).use(DragItem)
- Особенности компонента:
Конкретное содержание перетаскивания может быть полностью написано пользователем, или контрольная точка перетаскивания может быть написана им самим.
- Вызов компонента:
<template>
<drag-wrap class="wrap" :data="list" @watchData="watchData">
<drag-item class="item" v-for="(item, index) in list" :key="index">
<template #drag>
<div>拖拽Dom</div>
</template>
<div>{{item}}</div>
</drag-item>
</drag-wrap>
</template>
export default {
data() {
return {
list: [111, 222, 333, 444, 555, 666, 777, 888, 999]
};
},
methods: {
watchData(newList) {
console.log("newList", newList);
}
}
}
- параметр:
data: формат массива,DomСуществует соответствующий массив рендеринга, когдаDomПосле изменения позиции изменится и массив, переданный компоненту, и компонент будет отправлен после изменения.
- мероприятие:
watchData: изменение будет распространяться из массива, который будет получен слушателем этого метода.
- Слот:
drag: Пользователь определяет контрольную точку перетаскивания, а при отсутствии перетаскиванияDomТовар может быть где угодно.
Восемь, найдите компонент отличия (FindDiff)
- Установка компонента:
import { FindDiff } from 'vue-gn-components';
Vue.use(FindDiff)
- Особенности компонента:
«Вспомогательный» завершил игру «Все придираются».
- Вызов компонента:
<template>
<find-diff/>
</template>
Более
В будущем будут добавлены и оптимизированы дополнительные компоненты, добро пожаловатьprРазличные функциональные компоненты, которые вы используете. Адрес источникаvue-gn-components, если это поможет вам, пожалуйста, дайтеStarТеперь это также является мотивацией для меня продолжать улучшать этот проект.