首页 > 其他分享 >2024-07-26 定义一个vue组件,并使用双向绑定该组件的值

2024-07-26 定义一个vue组件,并使用双向绑定该组件的值

时间:2024-07-26 14:54:41浏览次数:9  
标签:26 vue const value 组件 input modelValue emit

我写了一个input组件(vue3)

<template>
    <div>
        <input class="inp" :value="modelValue" 
        @input="$emit('update:modelValue', $event.target.value)"
         />
    </div>
</template>

<script>
export default {
    name: "tInput",
};
</script>

<script setup>
const props = defineProps({
    modelValue: {
        type: String,
        default: "",
    },
});
const emit = defineEmits(['update:modelValue']);
</script>

<style>
.inp {
    height: 28px;
    border-radius: 6px;
    font-size: 18px;
    line-height: 28px;
    padding: 0 4px;
}
</style>

然后在页面应用:

<template>
    <div class="t-ui-flex-start t-ui-gap-16">
        <t-input v-model="value"></t-input>
        <button @click="testBtn">测试</button>
    </div>
</template>

<script setup>
import { ref } from "vue";
const value = ref('');
const testBtn = () => {
    console.log("value", value.value);
}
</script>

效果图:

 当你在input框输入值时会同时更新input组件的value,然后点击【测试】按钮打印input的value值就是你输入的值

 

问题1:一个普通的组件如何实现双向绑定?

使用defineEmits暴露出$emit值,并用$emit绑定组件的一些设值方法,如

@input="$emit('update:modelValue', $event.target.value)"

 

问题2:为什么我写的和你的差不多一样,但是点击按钮想打印出input的值却死活都是空?

原因:应该是你的@input事件写错了,检查有没有空格,我就是在'update: modelValue'中间写了个空格导致无法获取到input的值!

 

标签:26,vue,const,value,组件,input,modelValue,emit
From: https://www.cnblogs.com/iuniko/p/18325323

相关文章

  • 【KDE】【Plamsa】深入探索KDE Plasma桌面:组件精粹与个性化定制
    引言KDEPlasma桌面环境,作为Linux世界中的佼佼者,以其卓越的用户体验和深度定制能力赢得了广泛赞誉。本文将深入探讨KDEPlasma桌面的三大核心组件:窗口管理器、系统设置和应用程序启动器,揭示它们如何共同打造一个高效、个性化的工作环境。窗口管理器:你的视窗指挥官窗口管......
  • 近期题解(2024.7.26)
    CF1070AFindaNumber一个朴素的想法是设\(dp_{x,y}\)表示模\(d\)为\(x\)且和为\(y\)的最小值,那么答案就是\(dp_{0,s}\)。自然初始状态为\(dp_{0,0}=0\),但是我们发现这个转移关系是带环的,所以说要把这个dp换成最短路。直接从\((0,0)\)为源跑一遍bfs即可,时间复......
  • 基于Springboot + vue + mysql 招生管理系统 设计实现
    目录......
  • 免费分享一套微信小程序投票评选系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本
    大家好,我是java1234_小锋老师,看到一个不错的微信小程序投票评选系统(SpringBoot后端+Vue管理端),分享下哈。项目视频演示【免费】微信小程序投票评选系统(SpringBoot后端+Vue管理端)Java毕业设计_哔哩哔哩_bilibili项目介绍社会发展日新月异,用计算机应用实现数据管理功能......
  • windows的nodejs版本控制工具:nvm nodejs以及vue的安装
    首先确保自己的电脑是首次安装nodejs相关的软件,安装nvm之前必须确保电脑无nodejs。1.nvm的安装在github上寻找合适的版本,我安装的是v1.12版本。Releases·coreybutler/nvm-windows·GitHubwindows下就下载如下图所示的nvm-setup.exe文件选择nvm的安装路径选择nodej......
  • A098-Springboot-vue-化妆品推荐系统
    后端(SpringBoot)实现步骤:项目初始化:使用SpringInitializr创建一个新的SpringBoot项目,包括必要的依赖如SpringWeb和SpringDataJPA。数据库设计:设计数据库模型,例如化妆品(品牌、类型、成分等)、用户信息(注册、登录信息)、推荐记录等。可以选择MySQL、PostgreSQL等关系型数......
  • A097-springboot+vue汽车保养
    后端(SpringBoot)SpringBoot应用程序:创建一个基于SpringBoot的后端应用程序,用于处理业务逻辑和数据持久化。RESTfulAPI设计:使用SpringMVC创建RESTfulAPI,用于处理来自前端的请求和响应。API应设计清晰,包括汽车信息的增删改查、保养记录管理、用户信息等功能。数据持......
  • Vue入门记录(一)
    效果本文为实现如下前端效果的学习实践记录:实践入门的最佳实践我觉得是先去看官网,官网一般都会有快速入门指引。根据官网的快速上手文档,构建一个新的Vue3+TypeScript,查看新建的项目结构:现在先重点关注components、views、App.vue与main.ts。components目录通常用于存放可......
  • 计算机毕业设计django+vueblockly少儿编程在线学习网站【开题+论文+程序】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在数字化教育日益普及的今天,少儿编程教育作为培养学生逻辑思维、创造力和解决问题能力的重要手段,正受到越来越多的关注和重视。然而,传统的......
  • 计算机毕业设计django+vueee家教管理系统【开题+论文+程序】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着教育市场的不断扩展和个性化学习需求的日益增长,家教服务作为一种灵活高效的教育补充形式,受到了广大学生及家长的青睐。然而,传统的家教......