Vue2和Vue3自定义组件使用v-model

2023-11-11

Vue2

父组件:v-model

自定义组件:props接收+model对象里写prop和event+method里写具体方法

// 子组件
<el-tabs :value="active" @tab-click="handleClick">
  <el-tab-pane v-for="(item, key) in list" :key="key" :label="item.name" :name="item.value"></el-tab-pane>
</el-tabs>
...
export default {
  name: 'SearchTab',
  props: {
    active: {
      type: Number,
      default: 0
    },
    list: Array
  },
  // 这里接收v-model绑定的数据
  model: {
    prop: 'active',
    event: 'changeActive'
  },
  methods: {
    handleClick(val) {
      this.$emit('changeActive', val.name)
    }
  }
}

Vue3

父组件:v-model

自定义组件:v-model默认绑定的不是value,而是modelValue。发射的方法固定位为@update:modelValue。

// 子组件
<template>
    <input type="text" :value="modelValue" @input="onInput">
</template>
<script lang="ts">
import {defineComponent} from 'vue'
export default defineComponent({
    name:'ChildInput',
    props:{
        // 只能写modelValue
        modelValue:{
            type:String
        }
    },
    setup(props, context){
        const onInput = (e: Event) =>{
            context.emit('update:modelValue',e.target.value)
        }
        return{
            onInput
        }
    }
})
</script>

另一种在组件内实现 v-model 的方式是使用一个可写的,同时具有 getter 和 setter 的 computed 属性。get 方法需返回 modelValue prop,而 set 方法需触发相应的事件。

// 子组件
<script setup>
import { computed } from 'vue'

const props = defineProps(['modelValue'])
const emit = defineEmits(['update:modelValue'])

const value = computed({
  get() {
    return props.modelValue
  },
  set(value) {
    emit('update:modelValue', value)
  }
})
</script>

<template>
  <input v-model="value" />
</template>

欢迎留言讨论~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue2和Vue3自定义组件使用v-model 的相关文章

随机推荐

  • 宝塔linux忘记端口号,Bt(宝塔面板)忘记用户名、密码、端口的解决方案

    Bt 宝塔面板 用的人还是很多的 但是有的时候不注意忘掉了用户名和密码我们这时候要分两种情况 如果是面板刚安装好 不小心关掉了ssh工具 然后忘掉了初始的用户名和密码 或者就是在后台已经更改过了用户名和密码 但是忘记了 那应该怎么解决呢 下
  • Word:显示文档修改痕迹

    1 显示文档修改痕迹 当对word文档修改 我们想要在word中显示修改的痕迹 怎么设置 在文档顶端找到 审阅 修订 即可 具体高级设置 点击 修订 下三角 结果如下
  • nohup 命令之 nohup: ignoring input and appending output to ‘nohup.out’

    当我在linux中使用nohup 命令的时候 出现了这个错误 nohup ignoring input and appending output to nohup out 忽略输入输出 将信息化信息记录到nohup out文件中 补充 no
  • Vue3 学习

    基础 js https www bilibili com video BV15T411j7pJ spm id from 333 337 search card all click vd source 9747207be61edfe4ec62
  • 中标麒麟V7系统开启日志服务器收集日志

    0 备份 编辑配置文件 cp etc rsyslog conf etc rsyslog conf bak20210427 vi etc rsyslog conf 1 修改服务端配置 打开服务监听端口 MODULES The imjourna
  • UV纹理与贴图

    文章转载自 http www cnblogs com jenry p 4083415 html 1 什么是UV 对于三维模型 有两个最重要的坐标系统 一是顶点的位置 X Y Z 坐标 另一个就是UV坐标 什么是UV 简单的说 就是贴图影射到
  • 旋转后计算法线

    11
  • base64 编码转png上传minio

    public static InputStream base64ConvertPNG String base64 BASE64Decoder decoder new BASE64Decoder 解码 base64 base64 replac
  • opencv 中findContours函数介绍

    opencv4 中findContours函数介绍 findContours 这个函数的主要功能是找到contours也就是边界线 不过这个函数主要是给灰度图对象服务的 函数的使用介绍 findContours image mode met
  • MD5 Hash + Salt的密码存储方式实现

    MD5算法是一种密码散列算法 MD5散列后的数据长度为128 bit 该散列算法在密码上使用得非常多 但现在已经被更安全的SHA 1代替 MD5算法产生的密码可以使用反向查询的方式从预先算出的密码MD5库中查到密码 网上的一些MD5库中大约
  • 动态加载js的三种方式,以及script的三种加载方式

    测试准备 1 html文件 2 测试的js文件 我这里准备了四个js文件 每个脚本的最后都加上了console log 文件名 src main js 135KB src tooltip js gt 17KB src button js 4
  • 数据库五表关联查询

    1基于角色访问控制RBAC 1 1RABC数据库设计 1 2RABC实现流程 基于菜单实现 在创建系统用户时 为用户绑定对应的角色 当登录成功进入主页面 根据用户查询角色 再根据角色查询到当前用户的权限列表 2主页菜单的加载显示功能 根据不
  • Qt 使用 windeployqt 打包软件

    Qt 使用 windeployqt 打包软件 需使用qt 自带的终端打包 例如 打开之后 运行命令 windeployqt exe 需要打包的exe 不要使用cmd或者powershell
  • selenium知识点小结

    环境 Python 3 6 1 selenium 3 4 3 Firefox 54 0 1 geckodriver 0 15 0 chrome 59 0 3 chromedriver v3 1 自动化测试基础 1 软件测试分类 根据项目流程
  • chineseocr 安装笔记 2021-05

    chineseocr 基于yolo3 与crnn 实现中文自然场景文字检测及识别 选在 GitHub 目前位置有 4 1K的star 也正因为基于 yolo 的原因 尝试一下 chineseocr 的中文识别 GitHub地址 GitHub
  • 替换spring的commons-logging(jcl)日志系统为logback日志系统

    接口层名称 说明 JCL Jakarta Commons Logging 陈旧 这个就是spring core依赖的logging SLF4J 适合 同一作者 jboss logging 特殊专业领域使用 实现层名称 说明 log4j 最初
  • CKA 核心知识点概述

    CKA 核心知识点概述 介绍 知识点 说明 介绍 笔者曾经在本专栏分享了大量 CKA CKS 考点相关的内容 由于某些原因被 jubao 下架 但考虑到很多网友和群友想进一步了解 CKA 相关的核心知识 因此在这里把笔者之前的记录整理了一下
  • RuoYi-Vue————权限管理

    RuoYi Vue 权限管理 1 若依框架权限分类 2 若依框架权限的依次介绍 3 若依框架重要接口执行流程 1 若依框架权限分类 若依Vue系统中的权限分为以下几类 1 菜单权限 用户登录系统之后能看到哪些菜单 2 按钮权限 用户在一个页
  • 微信小程序基础知识-----获取用户授权信息

    点允许 绑定用户信息 用户头像和昵称 效果图 如何获取昵称和头像后将绿框框消除 设定一个数据变量 将设定的变量作为条件渲染 当获取到的用户信息后将设定的变量值改为false 执行这一板块 效果图 如何解决头像的问题
  • Vue2和Vue3自定义组件使用v-model

    Vue2 父组件 v model 自定义组件 props接收 model对象里写prop和event method里写具体方法 子组件