广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >在vue自定义组件中使用 v-model指令详情
  • 172
分享到

在vue自定义组件中使用 v-model指令详情

2024-04-02 19:04:59 172人浏览 安东尼
摘要

目录一、前言1.技术点提前知二、在自定义的Vue组件中使用v-model1.效果演示图2.自定义组件代码示例3.在父组件使用自定义组件三、优写时刻一、前言 如何实现在自定义的vue组

一、前言

如何实现在自定义的vue组件中使用v-model,。 起先觉得挺简单,事实也挺简单,但似乎又没那么简单。因为深谈这涉及指令原理、数据绑定实现原理。

1.技术点提前知

要想在自定义组件中使用v-model,使用上其实就简单几步,这里以自定义input组件为例。

关键步骤:

1.props的使用。在自定义的vue文件中,声明父组件要向子组件传递的prop属性,例如

 props: {
    // 接收string和number类型的值,
    myValue: [String, Number],
  },

注意:myValue这个属性名称是可以自定义的,但[String, Number]不能写成字符串["String","Number"],因为此时它们是构造器,是js的全局api

2.$emit的使用。用于向上派发事件,在自定义组件中触发,例如:

methods: {
    changeInput ($event) {
      this.$emit('myInput', $event.target.value)
   },
}

向上派发myInput事件,这样model监听myInput才有意义: 当输入字符时触发input事件,进而派发触发自定义的myInput事件, 然后model监听myInput,就实现了数据绑定。必须注意,这里的派发事件名“myInput”必须和model中的event的值相同。

PS: 通过watch监听 input标签的值,然后$emit派发事件,和通过@input派发事件具有一样的效果。只要能达到通信的效果即可,手段是多样的。

3.关键的model。model是允许vue自定义组件使用v-model的关键,虽然有时我们不显性的使用它,也不影响我们在自定义组件中使用v-model指令,这只是因为被设置默认值。而有的时候,显示的使用,并自定义model的prop和event会有益。这是官网关于model的介绍:

允许一个自定义组件在使用 v-model 时定制 prop 和 event。默认情况下,一个组件上的 v-model 会把 value 用作 prop 且把 input 用作 event,但是一些输入类型比如单选框和复选框按钮可能想使用 value prop 来达到不同的目的。使用 model 选项可以回避这些情况产生的冲突。

----本段摘自vue官网

自定义model使用示例:

model: {
    prop: 'myValue', // 默认是value
    event: 'myInput', // 默认是input
},

当我们使用model的默认值的时候value作prop,input作event时,可以省略不写model。

4.v-model的使用。在父组件中使用自定义组件,例如

<custom-model v-model="myValue"></custom-model>

这样写效果也一样:

<custom-model :my-value="myValue"></custom-model>

二、在自定义的vue组件中使用v-model

1.效果演示图

2.自定义组件代码示例

<template>
  <!-- 自定义组件中使用v-mode指令 -->
  <input type="search" @input="changeInput" data-myValue="">
</template>

<script>
export default {
  name: 'CustomModel',
  // 当我们使用model的默认值的时候value作prop,input作event时,可以省略不写model。
  model: {
    prop: 'myValue', // 默认是value
    event: 'myInput', // 默认是input
  },
  props: {
    // 接收string和number类型的值,
    // 注意不能是写成字符串["String","Number"],因为此时它们是构造器,是全局变量
    myValue: [String, Number],
  },
  methods: {
    changeInput ($event) {
      // 向上派发myInput事件,这样model监听myInput才有意义:当输入字符时触发input事件,
      // 进而派发触发自定义的myInput事件,然后model监听myInput,就实现了数据绑定
      this.$emit('myInput', $event.target.value)
    },
  }
}
</script>

3.在父组件使用自定义组件

<template>
  <div class="home">
    <h3>输入的实时内容:{{ myValue }}</h3>
    <custom-model v-model="myValue"></custom-model>
  </div>
</template>
<script>
import CustomModel from './CustomModel'
export default {
  name: 'Home',
  components: {
    CustomModel,
  },
  data () {
    return {
      myValue: ''
    }
  },
}
</script>

三、优写时刻

本段是【每一个技术点都值得优写】系列特写段落。 是一种拓展补充,就像数学试卷最后的附加题,读者可以自由选择阅读。

v-model简要补充。 v-model是vue中常用且重要的指令,能起到数据双向绑定的作用。 从MVVM(Model-View-ViewModel)架构的角度理解v-model的数据绑定, 它在需要view层和model层实现交互互动的时,非常有用。 例如,在view层输入数据,会及时更新该数据到model层, 而更新model层中的数据,也会被及时更新到view层, 这种更新业务逻辑是ViewModel在起作用。

先来看下数据双向绑定的效果:

那么vue是如何实现数据绑定的?

①object类型数据实现数据可观测,是通过Object的defineProperty()实现的。

②array类型数据实现数据可观测,是通过拦截重写数据的7个可操作数组且会改变数组自身的方法实现的。

③依赖是一种表示数据和其使用者的关系,依赖管理器会为每一个依赖创建watcher实例。

④数据变化被观测到后,会通过代表依赖的watcher实例,调用update()方法,通知视图更新。

⑤vue提供了set和delete两个全局API,弥补部分新增和删除数据手法,无法被观测,进而影响数据响应式实现的不足。

到此这篇关于在vue自定义组件中使用 v-model指令详情的文章就介绍到这了,更多相关 vue v-model指令内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 在vue自定义组件中使用 v-model指令详情

本文链接: https://www.lsjlt.com/news/150725.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 在vue自定义组件中使用 v-model指令详情
    目录一、前言1.技术点提前知二、在自定义的vue组件中使用v-model1.效果演示图2.自定义组件代码示例3.在父组件使用自定义组件三、优写时刻一、前言 如何实现在自定义的vue组...
    99+
    2022-11-13
  • Vue自定义组件v-model使用详解
    目录Vue2中使用Vue3中使用v-model 使用 modelValue自定义 v-model 的使用的参数多个 v-model 绑定自定义v-model 的修饰符Vue2中使用 ...
    99+
    2022-11-13
  • 自定义组件中怎么用v-model
    本篇内容主要讲解“自定义组件中怎么用v-model”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“自定义组件中怎么用v-model”吧!如何在自定义组件使用 v-model ?答:代码实现如下:&...
    99+
    2023-06-29
  • Vue自定义组件中v-model的使用方法示例
    目录Vue2中使用Vue3中使用v-model 使用 modelValue自定义 v-model 的使用的参数多个 v-model 绑定自定义v-model 的修饰符参考:总结Vue...
    99+
    2023-05-19
    vue 自定义组件 v-model vue v-model vue自定义组件 vmodel
  • vue自定义组件如何通过v-model指令控制组件的隐藏、显示
    目录通过v-model指令控制组件的隐藏、显示1.新建一个叫child.vue的vue组件文件2.将这个组件注册在全局3.在父组件文件里面写入Child组件在组件中实现v-model...
    99+
    2022-11-13
  • 如何使用vue组件自定义v-model实现一个Tab组件
    这篇文章主要介绍如何使用vue组件自定义v-model实现一个Tab组件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!效果先让我们看一下例子的效果吧!v-model我们知道 v-mo...
    99+
    2022-10-19
  • vue在自定义组件上使用v-model和.sync的方法实例
    目录自定义事件自定义组件的v-model.sync 修饰符思考总结自定义事件 tips 推荐始终使用 kebab-case 的事件名。(v-on会将事件名自动转换为小写,避免匹配不到...
    99+
    2022-11-13
  • 怎么实现Vue 自定义组件中hover事件以及 v-model
    这期内容当中小编将会给大家带来有关怎么实现Vue 自定义组件中hover事件以及 v-model,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在CSS中,很容易在鼠标ho...
    99+
    2022-10-19
  • Vue.js自定义指令的基本使用详情
    目录函数式对象式使用时的一些坑总结函数式 需求1:定义一个v-big指令,和v-text功能类似,但会把绑定的数值放大10倍 <div id="root"> &l...
    99+
    2022-11-13
  • vue在组件中使用v-model的场景
    目录一、使用场景二、V-Model的本质三、关键步骤1. props 的使用2. $emit 的使用3. 关键的 model四、不使...
    99+
    2022-11-13
  • 详解Vue自定义指令及使用
    目录一、什么是指令vue 中常用的一些内置 v- 指令v-if 和 v-show 的对比二、自定义指令的钩子函数三、全局指令四、局部指令五、带参数的自定义指令六、函数简写七、应用实例...
    99+
    2022-11-12
  • vue父组件中怎么利用v-model指令接收子组件的值
    这篇文章给大家介绍vue父组件中怎么利用v-model指令接收子组件的值,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体代码如下所述:<template> <div...
    99+
    2022-10-19
  • vue中怎么利用v-model指令实现父子组件通信
    本篇文章给大家分享的是有关vue中怎么利用v-model指令实现父子组件通信,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。vue的双向数据绑定...
    99+
    2022-10-19
  • 怎么在vue中利用v-model实现跨组件绑定
    怎么在vue中利用v-model实现跨组件绑定?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1:简单版代码如下:父组件:<template>  ...
    99+
    2023-06-14
  • Vue自定义指令的使用详细介绍
    目录1. 概述2. 钩子函数3. 自定义全局指令4. 自定义局部指令5. 使用自定义指令实现权限管理6. 使用自定义指令实现表单验证1. 概述 除了核心功能默认内置的指令,Vue也允...
    99+
    2022-11-13
  • Vue中如何使用自定义指令
    今天就跟大家聊聊有关Vue中如何使用自定义指令,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.自定义指令的语法Vue自定义指令语法如下:Vue.d...
    99+
    2022-10-19
  • vue中自定义组件v-model双向绑定、 父子组件同步通信的写法有哪些
    这篇文章主要为大家展示了“vue中自定义组件v-model双向绑定、 父子组件同步通信的写法有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue中自定义组...
    99+
    2022-10-19
  • Vue中在setup下如何使用自定义指令
    目录如何在setup下使用自定义指令1. 局部的自定义指令2. 全局注册自定义指令3. 简单的效果图4. 千万要注意如何在setup下使用自定义指令 1. 局部的自定义指令 html...
    99+
    2022-11-13
  • antd vue中,如何在form表单中的自定义组件使用v-decorator
    目录antd vue中在form表单中的自定义组件使用v-decorator问题描述分析简单说明v-decorator antd vue的理解总结antd vue中在form表单中的...
    99+
    2023-05-17
    antd vue form表单自定义组件 自定义组件v-decorator
  • vue中的自定义指令如何使用
    这篇文章主要介绍“vue中的自定义指令如何使用”,在日常操作中,相信很多人在vue中的自定义指令如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue中的自定义指令如何使用”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作