iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > 其他 >Vue3组件间传值避坑方法有哪些
  • 423
分享到

Vue3组件间传值避坑方法有哪些

Vue3 2023-05-15 09:05:49 423人浏览 独家记忆
摘要

实例填坑坑一1. 发现天坑我们通过一个计数器组件来演示这个坑,当想对父组件传递过来的值做操作时,发现操作无效,先看代码:<!DOCTYPE html> <html lang="en"> <h

    实例填坑

    坑一

    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">
        <script src="https://unpkg.com/Vue@next"></script>
        <title>组件间传值</title>
    </head>
    <body>
        <div id="root"></div>
    </body>
    <script>
        const app = Vue.createApp({
            data() {
                return {
                    num:0
                }
            },
           template: `
                    <div>
                       <counter :count = "num"/>
                    </div>
                    ` 
        });
        // 定义一个test组件
        app.component('counter',{
           props: ['count'],
          template: `<div @click="count+=1">{{count}}</div>`
        });
        const vm = app.mount('#root');
    </script>
    </html>

    在上面的代码中,我们定义了一个counter组件接收父组件的一个count值,当点击这个显示的值时,我们做加一操作。这时候我们运行代码会发现,我们的值并不会完成加一操作,而是会报父组件传递过来的值是只读的:

    Vue3组件间传值避坑方法有哪些

    2. 填坑时刻

    那假如我们要完成这个加一的功能怎么办呢?答案就是我们复制一份父组件传递过来的值,对我们自己的值进行操作:

    <!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">
        <script src="https://unpkg.com/vue@next"></script>
        <title>组件间传值</title>
    </head>
    <body>
        <div id="root"></div>
    </body>
    <script>
        const app = Vue.createApp({
            data() {
                return {
                    num:0
                }
            },
           template: `
                    <div>
                       <counter :count = "num"/>
                    </div>
                    ` 
        });
        // 定义一个test组件
        app.component('counter',{
           props: ['count'],
           data(){
            return{
                mCount:this.count
            }
           },
          template: `<div @click="mCount+=1">{{mCount}}</div>`
        });
        const vm = app.mount('#root');
    </script>
    </html>

    这时候我们再运行代码就会发现我们可以做加一操作了:

    Vue3组件间传值避坑方法有哪些

    坑2:

    1.发现天坑

    当我们定义一个单词名称比较长的属性,并且用“-”分隔符连接的时候,子组件无法接收到正确的值,显示NaN。代码如下:

    <!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">
        <script src="https://unpkg.com/vue@next"></script>
        <title>组件间传值</title>
    </head>
    <body>
        <div id="root"></div>
    </body>
    <script>
        const app = Vue.createApp({
            data() {
                return {
                    content:"hello world"
                }
            },
           template: `
                    <div>
                       <test :content-helloworld = "content"/>
                    </div>
                    ` 
        });
        // 定义一个test组件
        app.component('test',{
           props: ['content-helloworld'],
          template: `<div>{{content-helloworld}}</div>`
        });
        const vm = app.mount('#root');
    </script>
    </html>

    在上面的代码中,我们使用content-helloworld这个属性在父组件和子组件之间传值,按照我们的理解,应该是能传递成功的,但是显示的结果却不正确

    Vue3组件间传值避坑方法有哪些

    上面到坑也是VUE中的单向数据流的概念,即子组件可以使用父组件传递过来的数据,但是不能修改父组件传递过来的数据

    2.填坑时刻

    当我们定义的属性值中有用“-”分隔符分隔时,我们在接收值的时候,需要将属性名改成驼峰命名的方式,如上面的例子中父组件使用content-helloworld传递值到子组件,那么子组件接收到时候应该将其改成驼峰命名方式:使用contentHelloworld接收

    <!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">
        <script src="https://unpkg.com/vue@next"></script>
        <title>组件间传值</title>
    </head>
    <body>
        <div id="root"></div>
    </body>
    <script>
        const app = Vue.createApp({
            data() {
                return {
                    content:"hello world"
                }
            },
           template: `
                    <div>
                       <test :content-helloworld = "content"/>
                    </div>
                    ` 
        });
        // 定义一个test组件
        app.component('test',{
           props: ['contentHelloworld'],
          template: `<div>{{contentHelloworld}}</div>`
        });
        const vm = app.mount('#root');
    </script>
    </html>

    这样值就能正确显示了

    Vue3组件间传值避坑方法有哪些

    以上就是vue3组件间传值避坑方法有哪些的详细内容,更多请关注编程网其它相关文章!

    --结束END--

    本文标题: Vue3组件间传值避坑方法有哪些

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

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

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

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

    下载Word文档
    猜你喜欢
    • Vue3组件间传值避坑方法有哪些
      实例填坑坑一1. 发现天坑我们通过一个计数器组件来演示这个坑,当想对父组件传递过来的值做操作时,发现操作无效,先看代码:<!DOCTYPE html> <html lang="en"> <h...
      99+
      2023-05-15
      Vue3
    • Vue3组件间传值避坑方法指南
      目录组件间传值的两个坑实例填坑坑一1. 发现天坑2. 填坑时刻坑2:1.发现天坑2.填坑时刻总结组件间传值的两个坑 我们都知道父组件可以把值传递到自组件中,但是有时候子组件需要修改...
      99+
      2023-03-06
      Vue3组件传值避坑 Vue 组件传值
    • Vue3组件间传值的坑有哪些及怎么解决
      这篇文章主要讲解了“Vue3组件间传值的坑有哪些及怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue3组件间传值的坑有哪些及怎么解决”吧!实例填坑坑一1. 发现天坑我们通过一个计数...
      99+
      2023-07-06
    • angular组件传值的方法有哪些
      Angular组件之间传值的方法有以下几种: 输入属性(@Input):在子组件上通过@Input装饰器定义一个输入属性,然后在...
      99+
      2023-10-24
      angular
    • uniapp组件传值的方法有哪些
      这篇文章主要介绍“uniapp组件传值的方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“uniapp组件传值的方法有哪些”文章能帮助大家解决问题。父组件给子组件传值创建子组件comp.vue...
      99+
      2023-07-05
    • vue3 父子组件间相互传值方式
      目录vue3父子组件相互传值父向子传值子组件向父组件传值vue3父子组件传值的注意事项解决办法:两种vue3父子组件相互传值 父向子传值 父 <pie-chart :pieDa...
      99+
      2024-04-02
    • vue中组件间相互通信传值的方法有哪些
      这篇文章主要讲解了“vue中组件间相互通信传值的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue中组件间相互通信传值的方法有哪些”吧!vue中组件之间相互通讯传值的方式我们在使...
      99+
      2023-06-29
    • vue组件传值方式有哪些
      vue组件传值的方法:1、使用props传递数据,父组件通过HTML属性的方式将数据传递给子组件,子组件通过props来接收传递过来的数据;2、使用$emit触发事件传递数据,子组件使用$emit触发自定义事件,父组件通过v-on来监听子组...
      99+
      2023-07-10
    • vue兄弟组件传值的方法有哪些
      这篇文章主要介绍了vue兄弟组件传值的方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。五种方法为:1、父组件向子组件进行传值;2、子组件向父组件进行传值;3、父组件中...
      99+
      2023-06-15
    • vue组件之间相互传值的方式有哪些
      这篇文章给大家分享的是有关vue组件之间相互传值的方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。概述我们都知道 Vue 作为一个轻量级的前端框架,其核心就是组件化开发。Vue 就是由一个一个的组件构成的...
      99+
      2023-06-15
    • vue3中的组件间的传值(props)
      目录vue3组件间的传值(props)父组件向子组件传值子组件向父组件传值(常规)子组件向父组件传值(v-model)vue3组件之间传值和事件处理下面介绍子组件传值总结vue3组件...
      99+
      2023-05-17
      vue3 props vue3组件间传值 组件传值vue3
    • vue组件传值的方式有哪些
      这篇文章主要介绍vue组件传值的方式有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 组件传值方式:1、通过路由进行传值;2、通过在父组件中让子组件标...
      99+
      2024-04-02
    • vue3中组件传值的多种方法总结
      目录第一种: props和 emitsetup语法实现父向子传值第三种: provide和inject 实现后代组件传值第四种: v-model 以及动态属性绑定总结第一种: pro...
      99+
      2023-01-06
      vue3.0 组件传值 vue三种传值方式 vue3组件传值
    • Vue3组件传值方式是什么
      这篇文章主要介绍了Vue3组件传值方式是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue3组件传值方式是什么文章都会有所收获,下面我们一起来看看吧。父子组件传值 props和 vue2 一样,vue3 ...
      99+
      2023-07-02
    • Vue3中组件通讯的方法有哪些
      这篇文章主要讲解了“Vue3中组件通讯的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue3中组件通讯的方法有哪些”吧!Props父组件传值给子组件(简称:父传子)Props 文...
      99+
      2023-07-02
    • 微信小程序子组件传值的方法有哪些
      微信小程序子组件传值的方法有以下几种:1. 使用父组件的properties属性来传递值:在子组件中,通过properties定义需...
      99+
      2023-09-29
      微信小程序
    • Vue子组件接收父组件传值的方式有哪些
      这篇文章给大家分享的是有关Vue子组件接收父组件传值的方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。父组件代码&darr;<template>   &n...
      99+
      2023-06-29
    • 深入了解Vue3组件传值方式
      目录父子组件传值 props祖孙组件传值 provide 和 inject父组件中点击按钮向子组件传值今天说一下 vue3 的组件间传值,学习过 vue2 的宝子们肯定知道,组件传值...
      99+
      2024-04-02
    • vue组件传值有什么方法
      这篇文章主要为大家展示了“vue组件传值有什么方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue组件传值有什么方法”这篇文章吧。vue组件传值的五种方法:1、父组件向子组件进行传值;2、子...
      99+
      2023-06-25
    • vue组件之间进行传值的方法
      目录前言1.父组件向子组件进行传值2.子组件向父组件进行传值3.非父子组件之间的传值 总结前言 目前在做vue的项目,用到了子组件依赖其父组件的数据,进行子组件的相关请求和...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作