Ce que cet article vous apporte est une introduction à la méthode d'implémentation des boutons personnalisés dans Vue (avec du code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Dans les projets de développement réels, nous utiliserons parfois des boutons personnalisés car il y a de nombreuses pages dans un projet, afin d'unifier le style, nous réutiliserons plusieurs boutons identiques ou similaires. boutons Définir le composant bouton est pratique. Nous exportons le composant bouton défini et le référençons globalement, afin qu'il puisse être utilisé à volonté dans d'autres composants. Cela peut grandement améliorer notre efficacité de travail.
D'accord, sans plus tarder, voici le code :
img-button.vue//Ceci est notre composant de bouton personnalisé
<template> <div> <!-- 图片按钮 --> <div v-if="type === '查看'" :title="tag === '' ? type : tag" class="img-btn check-img"></div> <div v-if="type === '添加'" :title="tag === '' ? type : tag" class="img-btn add-img"></div> <div v-if="type === '修改'" :title="tag === '' ? type : tag" class="img-btn edit-img"></div> <div v-if="type === '删除'" :title="tag === '' ? type : tag" class="img-btn delete-img"></div> <div v-if="type === '刷新'" :title="tag === '' ? type : tag" class="img-btn refresh-img"></div> <div v-if="type === '关闭'" :title="tag === '' ? type : tag" class="img-btn close-img"></div> <div v-if="type === '齿轮'" :title="tag === '' ? type : tag" class="img-btn gear-img"></div> <div v-if="type === '平面图'" :title="tag === '' ? type : tag" class="img-btn plan-img"></div> <div v-if="type === '地图'" :title="tag === '' ? type : tag" class="img-btn map-img"></div> <div v-if="type === '一般模板'" :title="tag === '' ? type : tag" class="img-btn normal-img"></div> <div v-if="type === '特殊模板'" :title="tag === '' ? type : tag" class="img-btn special-img"></div> <div v-if="type === '折线图'" :title="tag === '' ? type : tag" class="img-btn line-img"></div> <!-- 文字按钮 自定义大小--> <div v-if="type === '按钮'" :title="tag === '' ? name : tag" class="img-btn ibtn">{{name}}</div> <div v-if="type === '小按钮'" :title="tag === '' ? name : tag">{{name}}</div> <div v-if="type === '普通按钮'" :title="tag === '' ? name : tag">{{name}}</div> </div> </template> <script> export default { name: 'ImgButton', props: { type: { type: String, default: '' }, name: { type: String, default: '' }, tag: { type: String, default: '' } } } </script> <style scoped> .img-button { vertical-align: middle; display: inline-block; cursor: pointer; margin-right: 10px; .img-btn { .img-no-repeat; width:25px; height:25px; } .img-btn:hover { transform: scale(1.1); } .refresh-img { background-image: url('../../assets/images/button/refresh.png'); } .add-img { background-image: url('../../assets/images/button/add.png'); } .delete-img { background-image: url('../../assets/images/button/delete.png'); } .check-img { background-image: url('../../assets/images/button/check.png'); } .close-img { background-image: url('../../assets/images/button/close.png'); } .edit-img { background-image: url('../../assets/images/button/edit.png'); } .gear-img { background-image: url('../../assets/images/button/gear.png') } .plan-img { background-image: url('../../assets/images/button/plan.png') } .map-img { background-image: url('../../assets/images/button/map.png') } .normal-img { background-image: url('../../assets/images/button/normal.png') } .special-img { background-image: url('../../assets/images/button/special.png') } .line-img { background-image: url('../../assets/images/button/line_chart.png') } .ibtn { width: auto; min-width: 100px; padding: 0 20px; font-size: 17px; height: 30px; line-height: 30px; text-align: center; border-radius:15px; background-color: #2f5d98; vertical-align: middle; color:#00cccc; } .ibtn-samll { .ibtn; height: 25px; padding: 0 2px; font-size: 10px; line-height: 25px; border-radius: 0px; background-color: transparent; border: 1px solid #00cccc; } .ibtn-samll:hover { color: white; border: 1px solid white; } .normal-btn { .ibtn; } .normal-btn:hover { color: white; background-color: #ff9247; } } </style>
Configuré dans router.js Route
est introduit dans main.js
//注册自定义按钮 import imgButton from './components/img-button' Vue.use(imgButton)
et peut ensuite être utilisé dans d'autres composants
<imgButton type='刷新' @click.native='refreshBtn'></imgButton>
//Il est à noter que le composant bouton personnalisé ajoute un événement de clic. Assurez-vous de ajoutez .native car le modificateur .native est utilisé pour enregistrer les événements natifs des éléments plutôt que les événements personnalisés des composants
Cet article est partout ici Vous pouvez le suivre pour un contenu plus passionnant du site Web PHP chinois . Tutoriel vidéo JavaScriptcolonne ! ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!