提升前端开发效率:基于vue的van-radio-group组件封装指南

前言

vant 作为一款流行的 ui 框架,其中,van-radio-group 组件是一个常用的单选框组件,但有时我们需要根据项目需求进行定制化封装。本文将介绍如何基于 vue 框架封装 van-radio-group 组件,让我们一起来探索吧!


封装文件

在这个组件中,使用了 vant 框架提供的 van-radio-groupvan-radio 组件来实现单选框的功能。组件接受三个 props:required(是否必选)、disabled(是否禁用)和 options(选项数组)。在组件的 data 属性中,定义了 checkedcheckRadioFlag 两个属性,分别用来保存选中项的值和判断是否需要清空选中项的状态。点击单选框时,会触发 clickFn 方法,根据 checkRadioFlag 的值来判断是否清空选中项,并通过 emit 方法向父组件发送更新事件。当选中项发生变化时,会触发 changeFn 方法,同样通过 emit 方法向父组件发送更新事件。当选中项发生变化时,会触发 changeFn 方法,同样通过 emit 方法向父组件发送 change 事件。

<template><div><van-radio-group v-bind="$attrs" :direction="$attrs.direction" :disabled="disabled" v-model="checked" @change="changeFn"><van-radio :name="item.name" @click="clickFn" v-for="item in options" :key="item.name">{{ item.label }}</van-radio></van-radio-group></div>
</template>
<script>
export default {props: {required: {type: Boolean,},disabled: {type: Boolean,},options: {type: Array,},},data() {return {checked: "",checkRadioFlag: false,};},methods: {clickFn() {if (this.checkRadioFlag) {this.checked = "";}this.checkRadioFlag = true;this.$emit("update:model", this.checked);},changeFn() {this.checkRadioFlag = false;this.$emit("change", this.checked);},},
};
</script>

使用文件

这个组件中使用了一个名为 vRadio 的自定义组件来实现单选框的功能。vRadio 组件接受两个 props:options(选项数组)和 direction(单选框的排列方向)。在组件的 data 属性中,定义了 valueradioList 两个属性,分别用来保存选中项的值和选项数组的数据。vRadio 组件通过 props 接收 optionsdirection,并使用 v-bind 指令将其传递给 van-radio-group 组件和 van-radio 组件。vRadio 组件还使用了 model.sync 来实现双向绑定,将选中项的值保存在 value 属性中。通过使用 vant 框架提供的组件来实现单选框的功能,并通过 propsdata 属性来传递和保存选项和选中项的数据。同时,通过事件和双向绑定来实现选中项的更新和变化的通知。

<template><div><vRadio :options="radioLsit" :direction="`horizontal`" :model.sync="value" /></div>
</template><script>
import vRadio from "@/components/vRadio/index";export default {components: {vRadio,},data() {return {value: "",radioLsit: [{name: "1",label: "是",},{name: "2",label: "否",},],};},
};
</script>

实现效果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/81770.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python-模块

python模块&#xff08;Module&#xff09;&#xff0c;是一个python 文件&#xff0c;以.py结尾&#xff0c;模块可以定义函数&#xff0c;类和变量。 模块的导入方法 [from 模块名 ] import [模块 | 类 | 变量 | 函数 | *] [as 别名 ] import模块名 import timetime.sleep(…

EFK代替ELK方案7.17.3

文章目录 一. 传统的ELK二. EFK2.1 安装elasticSearch2.2 服务端安装fileBeats2.2.1. 安装 该也没有必要安装odcker,直接下载yum或官网jar包启动即可.2.2.2.编辑配置文件 filebeat-java-logback.yml2.2.3. es配置common_log_pipeline解析日志 三.启动测试 最近发现,logstash日志…

性能测试 —— Jmeter 常用三种定时器

1、同步定时器 位置&#xff1a;HTTP请求->定时器->Synchronizing Timer 当需要进行大量用户的并发测试时&#xff0c;为了让用户能真正的同时执行&#xff0c;添加同步定时器&#xff0c;用户阻塞线程&#xff0c;知道线程数达到预先配置的数值&#xff0c;才开始执行…

南大通用数据库-Gbase-8a-学习-39-show命令汇总(持续更新)

目录 一、环境信息 二、show功能参数 三、show命令示例 1、SHOW LOAD LOGS&#xff08;加载日志报错&#xff09; 2、SHOW COLUMNS&#xff08;列信息&#xff09; 3、SHOW CREATE DATABASE&#xff08;建库信息&#xff09; 4、SHOW CREATE PROCEDURE &#xff08;存储…

前后端分离技术逐步深入,让你更加深入理解Nginx+Tomcat

你提到了熟悉Tomcat和Nginx服务器的配置&#xff0c;以及应用前后端分离技术&#xff0c;请解释一下Tomcat和Nginx的主要作用是什么&#xff0c;以及在前后端分离中它们的角色是什么&#xff1f; 标准回答&#xff1a; Tomcat是一个Java应用服务器&#xff0c;主要用于运行Jav…

Linux面试题

当准备 Linux 面试时&#xff0c;以下是一些可能会遇到的常见 Linux 面试题&#xff1a; 1. 什么是Linux&#xff1f;解释一下Linux操作系统的特点。 2. 什么是Linux内核&#xff1f;Linux内核的作用是什么&#xff1f; 3. 如何在Linux系统上查看当前的IP地址和子网掩码&#…

rk平台快捷键进入uboot模式和烧录模式

(1)进入U-boot命令行模式 上电时,多次按下ctrlc按键(2)进入maskrom烧录模式 方法一:上电时(或者reboot时),多次按下ctrlb 方法二:在uboot命令 手敲rbrom

Java 通过页码范围提取新的文档(docx、pdf)

客户有一个新的需求。控制用户下载文档的页数。比如。我设置只开放10页。那就要我们去做截取文档。pdf自带有实现的方式。docx暂时没找到开源的。我这边处理的docx。是通过转换成pdf。通过截取pdf后再转成docx去实现的 工具类如下&#xff1a; import java.io.FileOutputStream…

git及dbc的学习

&#xff11;&#xff09;git的使用方法 Command line instructions You can also upload existing files from your computer using the instructions below. Git global setup git config --global user.name "username" git config --global user.email "xx…

SpringMvc高级(拦截器和文件上传下载)

拦截器&#xff08;Interceptor&#xff09;是一种常用的设计模式&#xff0c;在软件工程领域被广泛应用。拦截器通常被用来处理各种请求和响应&#xff0c;可以在请求发送前或响应返回后进行一系列的操作和处理。拦截器可以用于请求身份认证、日志记录、性能优化、权限控制、数…

vue3 - 使用reactive定义响应式数据进行赋值时,视图没有改变,值已经改变的解决方案

问题&#xff1a; 在Vue 3.0 中我们使用 reactive() 定义的响应式数据的时候&#xff0c;当是一个数组或对象时&#xff0c;我们直接进行赋值&#xff0c;发现数据已经修改成功&#xff0c;但是页⾯并没有自动渲染成最新的数据&#xff1b;这是为什么呢&#xff1f; 就如同官网…

线性代数的本质(二)——线性变换与矩阵

文章目录 线性变换与矩阵线性变换与二阶方阵常见的线性变换复合变换与矩阵乘法矩阵的定义列空间与基矩阵的秩逆变换与逆矩阵 线性变换与矩阵 线性变换与二阶方阵 本节从二维平面出发学习线性代数。通常选用平面坐标系 O x y Oxy Oxy &#xff0c;基向量为 i , j \mathbf i,…

数据结构-时间复杂度/空间复杂度

Hello&#xff0c;好久没有更新了哦&#xff0c;已经开始学习数据结构了&#xff0c;这篇文章呢就是对刚学数据结构所接触到的时间复杂度进行一个分享哦&#xff0c;如果有错误之处&#xff0c;大家记得拍拍我哦~ 既然要讨论时间/空间复杂度&#xff0c;那我们就得知道时间/空…

SpringBoot国际化配置组件支持本地配置和数据库配置

文章目录 0. 前言i18n-spring-boot-starter1. 使用方式0.引入依赖1.配置项2.初始化国际化配置表3.如何使用 2. 核心源码实现一个拦截器I18nInterceptorI18nMessageResource 加载国际化配置 3.源码地址 0. 前言 写个了原生的SpringBoot国际化配置组件支持本地配置和数据库配置 背…

tdesign的文件上传(微信小程序+idea的springboot)

目录 1. springboot后端 1.1 FileController.java 1.2 listener文件的ErpApplicationListener.java 1.3 【重点&#xff01;】FileServiceImpl层 1.4 IFileService 1.5 StringUtil通用类 1.6 主程序加一个监听器 1.7 application.yml文件 2. 微信小程序端 2.1 TDesign的…

latex如何保证图片和文字的相对位置不变

文章目录 latex如何保证图片与文字的相对位置不变&#xff1f;解决方法&#xff1a; latex如何保证图片与文字的相对位置不变&#xff1f; 解决方法&#xff1a; 加入宏包\usepackage{float} 在figure环境后面加入参数H \begin{figure}[H]\centering\includegraphics[width…

随机产生两个数在屏幕上打印,例如6*7=? 让学生输入答案,若正确打印答对了,否则提示学生重做,直到答对为止(小游戏)

#include<stdio.h> #include<stdlib.h> #include<time.h>//时间的库函数 int main() {int i 0;srand(time(0));//随机种子初始化int num1 rand() %10;//随机数int num2 rand() %10;printf("%d * %d ?\n", num1, num2);printf("请输入答案…

阿里云无影电脑:免费体验无影云电脑3个月

阿里云无影云电脑免费领取流程&#xff0c;免费无影云电脑配置为4核8G&#xff0c;可以免费使用3个月&#xff0c;阿里云百科分享阿里云无影云电脑&#xff08;云桌面&#xff09;免费申请入口、申请流程及免费使用限制条件说明&#xff1a; 目录 阿里云无影云电脑免费申请入…

【C++初阶】动态内存管理

​&#x1f47b;内容专栏&#xff1a; C/C编程 &#x1f428;本文概括&#xff1a; C/C内存分布、C语言动态内存管理、C动态内存管理、operator new与operator delete函数、new和delete的实现原理、定位new表达式、常见面试问题等。 &#x1f43c;本文作者&#xff1a; 阿四啊 …

SQL2 查询多列

描述 题目&#xff1a;现在运营同学想要用户的设备id对应的性别、年龄和学校的数据&#xff0c;请你取出相应数据 示例&#xff1a;user_profile iddevice_idgenderageuniversityprovince12138male21北京大学Beijing23214male复旦大学Shanghai36543female20北京大学Beijing42…