Vue中指令v-model的原理及使用方法

 更新时间:2024年09月23日 10:35:25   作者:青青青青草地  
v-model是Vue中的一个重要语法糖,主要用于实现数据的双向绑定,它通过结合value属性和input事件,简化了代码并提高了开发效率,文中通过代码介绍的非常详解,需要的朋友可以参考下

v-model的原理

原理:v-model本质上是一个语法糖。例如应用在输入框上,就是value属性和input事件的合写。

作用:提供数据的双向绑定

  • 数据变,视图跟着变 :value
  • 视图变,数据跟这变 @input

注意:$event用于在模板中获取事件的形参。

<template>
	<div id="app">
    	<input v-model="msg" type="text">
    <input :value="msg" @input="msg = $event.target.value" type="text" name="" id="">
  	</div>
</template>

表单类组件封装 & v-model简化代码

  • 表单类组件封装

    父传子:数据应该是父组件props传递过来的,v-model拆解绑定数据

    子传父:监听输入,子传父传值给父组件修改

    父组件(使用):

    <BaseSelect :cityId="selectId" @事件名="selectId = $event"></BaseSelect>
    

    子组件(封装):

    <select :value="cityId" @chang="handleChange">...</select>
    
    props: {
    	cityId: String
    },
    
    methods: {
    	handleChange (e) {
    		this.$emit('事件名', e.target.value)
    	}
    }
    
  • 父组件v-model简化代码,实现子组件和父组件数据双向绑定。

    子组件中:props通过value接收,事件触发input

    父组件中:v-model给组件直接解绑数据(:value+@input

    父组件(使用):

    <BaseSelect v-model="selectId"></BaseSelect>
    

    子组件(封装):

    <select :value="cityId" @chang="handleChange">...</select>
    
    props: {
    	value: String
    },
    methods: {
        handleChange (e) {
            this.$emit('input', e.target.value)
        }
    }

附:v-model结合radio类型使用

radio单选框的属性是互斥的,如果使用v-model,可以不使用name就可以互斥。

v-model绑定sex属性,初始值为“男”,选择女后sex属性变成“女”,因为此时是双向绑定。

 <div id="app">
    <!-- name属性radio互斥 使用v-model可以不用name就可以互斥 -->
    <label for="male">
      <input type="radio" id="male" name="sex" value="男" v-model="sex">男
    </label>
    <label for="female">
        <input type="radio" id="female" name="sex" value="女" v-model="sex">女
    </label>
    <div>你选择的性别是:{{sex}}</div>
 
  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el:"#app",
      data:{
        message:"zzz",
        sex:"男"
      },
 
    })
  </script>

总结 

到此这篇关于Vue中指令v-model的原理及使用方法的文章就介绍到这了,更多相关Vue 指令v-model原理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue中的计算属性和侦听属性

    vue中的计算属性和侦听属性

    这篇文章主要介绍了vue中的计算属性和侦听属性,帮助大家更好的理解和学习vue框架的使用,感兴趣的朋友可以了解下
    2020-11-11
  • vue实现token登录验证的完整实例

    vue实现token登录验证的完整实例

    最近公司新启动了个项目,用的是vue框架在做,下面这篇文章主要给大家介绍了关于vue实现token登录验证的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • 使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题

    使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题

    这篇文章主要介绍了使用vue-cli3 创建vue项目,并配置VS Code 自动代码格式化 vue语法高亮问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • 详解如何在Vue3中捕获和处理错误

    详解如何在Vue3中捕获和处理错误

    Vue 3 作为前端开发中一个非常流行的框架,在错误处理方面提供了灵活和强大的能力,本文将深入介绍在 Vue 3 中如何捕获和处理错误,包括组件级的错误处理、全局错误处理以及如何与异常日志系统集成,需要的朋友可以参考下
    2024-07-07
  • vue中v-if 和v-permission 共同使用的坑及解决方案

    vue中v-if 和v-permission 共同使用的坑及解决方案

    这篇文章主要介绍了vue中v-if 和v-permission 共同使用的坑及解决方案的相关资料,需要的朋友可以参考下
    2023-07-07
  • vue-print-nb实现页面打印功能实例(含分页打印)

    vue-print-nb实现页面打印功能实例(含分页打印)

    在项目中,有时需要打印页面的表格,在网上找了一个打印组件vue-print-nb,用了还不错,所以下面这篇文章主要给大家介绍了关于vue-print-nb实现页面打印功能的相关资料,需要的朋友可以参考下
    2022-08-08
  • VUE侧边导航栏实现筛选过滤的示例代码

    VUE侧边导航栏实现筛选过滤的示例代码

    本文主要介绍了VUE侧边导航栏实现筛选过滤的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • vue 使用vue-i18n做全局中英文切换的方法

    vue 使用vue-i18n做全局中英文切换的方法

    这篇文章主要介绍了vue 使用vue-i18n做全局中英文切换的实现方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2018-10-10
  • Vue通过axios调用json地址数据的方法

    Vue通过axios调用json地址数据的方法

    在现代Web开发中,前后端分离已成为标准做法,Vue.js作为前端框架中的佼佼者,提供了丰富的API来处理数据和服务端的交互,其中一个常用的库是axios,本文将详细介绍如何在Vue项目中使用axios来调用JSON数据,需要的朋友可以参考下
    2024-09-09
  • vue3+electron12+dll开发客户端配置详解

    vue3+electron12+dll开发客户端配置详解

    本文将结合实例代码,介绍vue3+electron12+dll客户端配置,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06

最新评论