广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue组件间的双向绑定示例解析
  • 409
分享到

Vue组件间的双向绑定示例解析

Vue组件间双向绑定Vue组件绑定 2023-03-19 17:03:56 409人浏览 八月长安
摘要

目录何为组件间双向绑定示例解析总结何为组件间双向绑定 我们都知道当父组件改变了某个值后,如果这个值传给了子组件,那么子组件也会自动跟着改变,但是这是单向的,使用v-bind的方式,即

何为组件间双向绑定

我们都知道当父组件改变了某个值后,如果这个值传给了子组件,那么子组件也会自动跟着改变,但是这是单向的,使用v-bind的方式,即子组件可以使用父组件的值,但是不能改变这个值。组件间的双向绑定就是对于父组件的变更,子组件可以感知到,同样对于子组件的变更,父组件也可以感知到。这个过程是自动的。Vue中的双向绑定用v-model来实现

示例解析

这里我们还是以一个计数器组件来介绍Vue的双向绑定,我们定义一个Div显示一个数,当我们点击这个数的时候,让这个数加1,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta Http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>组件间双向绑定</title>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <div id="root"></div>
</body>
<script>
 const app = Vue.createApp({
    data() {
        return {
            count:1
        }
    },
    methods:{
        handleCountOneChange(count){
            this.count = count;
        }
    },
        template: 
        `
        <div>
            <counter v-model:count = "count"  @change-count-one="handleCountOneChange"/>
        </div>
        `
    });
    app.component('counter',{
      props:['count'],
        methods: {
            handleItemClick(){
                 this.$emit('change-count-one',this.count + 1);
            },
        },
        template:
        `<div @click="handleItemClick">{{count}}</div>
        `
    });
    const vm = app.mount('#root');
</script>
</html>

在之前我们要将父组件传过来的值做加一操作的时候,由于是单向数据流,我们只能把父组件传来的值先拷贝一份到子组件,然后让子组件去改变自己的这个值来达到子组件的计数效果,本节所讲的双向数据绑定可以在子组件中将这个值加一后传到父组件,父组件收到这个值以后又会同步给子组件,这样就完成了一个计数器。如上面代码所示,父组件通过v-model的方式将count传给子组件,子组件收到这个值后,当用户点击了div后,就会执行handleItemClick方法,这个方法会通过事件的方式,将count+1的值通知给父组件,父子组件由于是双向绑定的,所以这个count的值又会被子组件感知到然后子组件就显示了count+1 的值了,如此循环,点击一次,值就加一。就完成了counter组件的计数功能了。

这里需要注意的是,父组件传递值的时候用法是: v-model:count = "count" 不要忘记后面的“:count”少了是无法显示的

那假设我们不想使用:count的方式呢,那就可以用指定的一个关键字modelValue代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>组件间双向绑定</title>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <div id="root"></div>
</body>
<script>
 const app = Vue.createApp({
    data() {
        return {
            count:1
        }
    },
    methods:{
        handleCountOneChange(count){
            this.count = count;
        }
    },
        template: 
        `
        <div>
            <counter v-model = "count"  @change-count-one="handleCountOneChange"/>
        </div>
        `
    });
    app.component('counter',{
      props:['modelValue'],
        methods: {
            handleItemClick(){
                 this.$emit('change-count-one',this.modelValue + 1);
            },
        },
        template:
        `<div @click="handleItemClick">{{modelValue}}</div>
        `
    });
    const vm = app.mount('#root');
</script>
</html>

注意此处只能叫modelValue,其他的名字都不可以

总结

其实本文的内容非常简单,就是使用v-model来实现vue组件之间的双向绑定,这里面有个事件的概念,就是 this.$emit('change-count-one',this.count + 1);这个,这个可以理解成一个事件通过$emit()发送,父组件通过@change-count-one="handleCountOneChange"去监听,然后执行对应的操作。这个下次讲。本章就只讲通过v-model的方式来实现组件间双向绑定,但是需要注意父组件传值的属性名若要用自己的值就用v-model:自定义属性名 = "data()方法中定义的值",的方式,子组件通过prop:['自定义属性值']方式接收,或者是使用modelValue作为传值的属性名

到此这篇关于Vue组件间的双向绑定示例解析的文章就介绍到这了,更多相关Vue组件间双向绑定内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue组件间的双向绑定示例解析

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

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

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

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

下载Word文档
猜你喜欢
  • Vue组件间的双向绑定示例解析
    目录何为组件间双向绑定示例解析总结何为组件间双向绑定 我们都知道当父组件改变了某个值后,如果这个值传给了子组件,那么子组件也会自动跟着改变,但是这是单向的,使用v-bind的方式,即...
    99+
    2023-03-19
    Vue组件间双向绑定 Vue组件绑定
  • vue中数据双向绑定的示例分析
    这篇文章主要介绍了vue中数据双向绑定的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。* Object.definePro...
    99+
    2022-10-19
  • Vue组件间的双向绑定怎么实现
    这篇“Vue组件间的双向绑定怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue组件间的双向绑定怎么实现”文章吧。何...
    99+
    2023-07-05
  • angular双向绑定的示例分析
    这篇文章主要为大家展示了“angular双向绑定的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“angular双向绑定的示例分析”这篇文章吧。双向绑定原理双向绑定将属性绑定与事件绑定结合...
    99+
    2023-06-22
  • Vue 组件上的v-model双向绑定原理解析
    目录组件上的v-model原理v-model编译阶段组件生成阶段之前我们分析了Vue中v-model指令在普通表单元素上的使用原理(点击这里跳转),这一节我们继续分析v-model指...
    99+
    2022-11-13
  • Vue双向数据绑定原理的示例分析
    小编给大家分享一下Vue双向数据绑定原理的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!双向数据绑定的原理:采用“数据劫持”结合“发布者-订阅者”模式的方式,通过“Object.defineProperty()”方...
    99+
    2023-06-14
  • Angular10中双向绑定的示例分析
    这篇文章主要介绍了Angular10中双向绑定的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。将利用@Input()和@Output...
    99+
    2022-10-19
  • vue双向绑定原理实例分析
    这篇文章主要介绍了vue双向绑定原理实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue双向绑定原理实例分析文章都会有所收获,下面我们一起来看看吧。自定义vue类vue最少需要两个参数:模板和data。...
    99+
    2023-06-29
  • AngularJs中双向绑定机制的示例分析
    这篇文章主要为大家展示了“AngularJs中双向绑定机制的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“AngularJs中双向绑定机制的示例分析”这...
    99+
    2022-10-19
  • 实现mvvm-simple双向绑定的示例分析
    这篇文章给大家分享的是有关实现mvvm-simple双向绑定的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mvvm模式解放DOM枷锁mvvm原理分析JavaScript...
    99+
    2022-10-19
  • JavaScript中双向数据绑定的示例分析
    小编给大家分享一下JavaScript中双向数据绑定的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!双向数据绑定指的是将...
    99+
    2022-10-19
  • Vue3父子组件间通信、组件间双向绑定的方法
    父子组件可通过事件 进行通信前面的笔记 —— 《Vue3 | 组件的定义及复用性、局部组件、全局组件、组件间传值及其校验、单项数据流、Non-props属性》,单向数据流的概念,即子组件无法修改来自父组件的数据字段,假如确要修改,可以使用下...
    99+
    2023-05-15
    Vue3
  • Vue响应式原理及双向数据绑定示例分析
    目录前言响应式原理双向数据绑定前言 之前公司招人,面试了一些的前端同学,因为公司使用的前端技术是Vue,所以免不了问到其响应式原理和Vue的双向数据绑定。但是这边面试到的80%的同学...
    99+
    2022-11-13
  • Android DataBinding的官方双向绑定示例
    在Android Studio 2.1 Preview 3之后,官方开始支持双向绑定了。可惜目前Google并没有在Data Binding指南里面加入这个教程,并且在整个互联网之中只有这篇文章介绍了如何使用反向绑定。在阅读一下文章之前,我...
    99+
    2023-05-30
    android databinding dat
  • 前端MVVM框架中双向绑定的示例分析
    这篇文章主要介绍了前端MVVM框架中双向绑定的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。MVVM 框架基本概念在 MVVM 框架...
    99+
    2022-10-19
  • js的双向绑定实例讲解
    这篇文章主要介绍“js的双向绑定实例讲解”,在日常操作中,相信很多人在js的双向绑定实例讲解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”js的双向绑定实例讲解”的疑惑有所帮...
    99+
    2022-10-19
  • vue中如何解除数据之间的双向绑定
    目录如何解除数据之间的双向绑定问题结论vue双向绑定2.0和3.0区别vue2.0实现双向绑定vue3.0实现双向绑定vue2.0和Vue3.0双向绑定的区别观察者模式和发布者订阅者...
    99+
    2022-11-13
  • vue自定义组件实现v-model双向绑定数据的实例代码
    项目中会遇到自定义公共组件供项目调用,正常情况可以使用 props定义参数接收父组件传的参数,然后通过子组件的$emits()方法回传数据给父组件。 类似如下: 父组件 <...
    99+
    2022-11-12
  • Vue3父子组件间通信和组件间双向绑定怎么实现
    本篇内容主要讲解“Vue3父子组件间通信和组件间双向绑定怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue3父子组件间通信和组件间双向绑定怎么实现”吧!假如确要修改,可以使用下面说的方...
    99+
    2023-07-06
  • vue中view-model双向绑定基础原理解析
    利用Object.defineProperty进行数据劫持 代码如下 <!DOCTYPE html> <html lang="en"> <head>...
    99+
    2022-11-13
    vue中view-model双向绑定 vue双向绑定
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作