专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

vue传参数的方法有哪些

来源:小易整编  作者:小易  发布时间:2024-03-12 10:27
摘要:传参数的方法:1、父子组件间利用“props”和“$emit”进行传参;2、爷孙组件间利用“provide”和“inject”进行传参;3、兄弟组件间利用公共文件来传参;4、路由间使用“query”和“params”来传参。本教程操作环境:...

传参数的方法:1、父子组件间利用“props”和“$emit”进行传参;2、爷孙组件间利用“provide”和“inject”进行传参;3、兄弟组件间利用公共文件来传参;4、路由间使用“query”和“params”来传参。

vue传参数的方法有哪些

本教程操作环境:windows7系统、vue2.9.6版,DELL G3电脑。

Vue中常见参数传递方式

组件通信——vue中父子组件间的方法调用和参数传递props、$emit

组件通信——爷孙组件间的传参provide、inject

组件通信——兄弟组件间的传参bus.js

路由间的传参query、params

一、父子组件

1.1父传子(props)

登录后复制
登录后复制

页面数据效果如下

这里要稍微注意一下,父组件所传递参数如果是需要在生命周期中获取赋值,就不能绑定在mounted中,否则子组件方法中this调用不会成功。生命周期顺序:父beforeMount->子beforeCreate……子mounted->父mounted

1.2子传父($emit)

登录后复制
登录后复制

点击按钮后页面效果图如下

1.3父组件调用子组件方法($on)

登录后复制
登录后复制

二、爷孙组件的参数传递(provide和inject,不受组件层级影响)

provideinject 主要为高阶插件/组件库提供用例。并不推荐直接用于应用程序代码中。官方文档:cn.vuejs.org/v2/api/#provide-injectcn.vuejs.org/v2/guide/components-edge-cases.html#依赖注入

        data() {            return {                msg: 'A'            }        },        provide() {            return {                message: this.msg            }        }
登录后复制
        components:{child},        inject:['message'],
登录后复制
        inject: ['message'],        created() {            console.log(this.message)    // A        },
登录后复制

三、兄弟组件的参数传递(bus.js)

3.1创建公交bus.js

3.2像兄弟组件传递参数

import Bus from "@/utils/bus";   //注意引入    export default {        data(){            return {                num:1            }        },        methods: {            handle(){                Bus.$emit("brother", this.num++, "子组件向兄弟组件传值");            }        },    }
登录后复制

3.3接受兄弟组件的参数

import Bus from "@/utils/bus";   //注意引入    export default {        data(){            return {                data1:'',                data2:''            }        },        mounted() {            Bus.$on("brother", (val, val1) => {    //取 Bus.$on                this.data1 = val;                this.data2 = val1;            });        },    }
登录后复制

四、路由间的参数传递(query和params)

query和parmas的使用方式大致相同,这里简单介绍一下路由配置、参数的传递和调用

4.1params,参数显示在url

// router的配置    {      path: "/two/:id/:data",     // 跳转的路由后加上/:id,多个参数继续按格式添加,数据按顺序对应      name: "two",      component: two    }// 跳转,这里message为123  this.$router.push({    path: `/two/${this.message}/456`     // 直接把数据拼接在path后面  }); // 接收  created() {      this.msg1=this.$route.params.id    // 123      this.msg2=this.$route.params.data  // 456   }// url显示,数据显示在url,所以这种方式传递数据仅限于一些不那么重要的参数  /two/123/456
登录后复制

4.2params,参数不显示在url,刷新页面数据消失

// router的配置    {      path: "/two",      name: "two",      component: two    }// 跳转,这里message为123    this.$router.push({      name: `two`,    // 这里只能是name,对应路由      params: { id: this.message, data: 456 }    }); // 接收  created() {      this.msg1=this.$route.params.id    // 123      this.msg2=this.$route.params.data  // 456   }// url显示,数据不显示在url  /two
登录后复制

4.3query,参数显示在url

// router的配置    {      path: "/two",      name: "two",      component: two    }// 跳转,这里message为123    this.$router.push({      path: `/two`,    // 这里可以是path也可以是name(如果是name,name:'two'),对应路由      query: { id: this.message, data: 456 }    }); // 接收  created() {      this.msg1=this.$route.query.id    // 123      this.msg2=this.$route.query.data  // 456   }// url显示,数据显示在url  /two?id=123&data=456
登录后复制

相关推荐:《vue.js教程》

以上就是vue传参数的方法有哪些的详细内容,更多请关注易企推科技其它相关文章!


本文地址:网络知识频道 https://www.hkm168.com/jiqiao/1146850.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


网络知识
小编:小易整编
相关文章相关阅读
  • c语言的输入函数有哪些

    c语言的输入函数有哪些

    c语言的输入函数有:1、scanf()函数、从标准输入stdin读取格式化输入;2、getchar()函数,从标准输入stdin获取一个字符;3、gets()函数,从标准输入stdin读取一行;4、getch()函数,从stdin流中读取字...

  • 因特网能提供的最基本服务有哪些

    因特网能提供的最基本服务有哪些

    因特网能提供的最基本服务有:1、www服务;2、电子邮件e-mail服务;3、远程登录telnet服务;4、文件传输ftp服务;5、usenet网络新闻组服务;6、电子公告牌服务。本教程操作环境:windows7系统、DellG3电脑。因...

  • 有没有录制电脑屏幕的方法

    有没有录制电脑屏幕的方法

    电脑屏幕有录制的方法吗有两个方法一是用win10电脑自带的录屏软件来录,打游戏的时候按一下【win+g】就行了二是用其他的录制软件来录制,比如“迅捷屏幕录像工具”,操作方法如下:1、首先在电脑上将这个工具下载下来。下载完成后打开工具,主页...

  • 如何使用Vue技术进行移动端开发

    如何使用Vue技术进行移动端开发

    如何使用Vue技术进行移动端开发随着移动互联网的迅猛发展,移动端应用的开发变得越来越重要。Vue.js作为一款轻量级、高性能的前端框架,被广泛应用于移动端开发中。本文将介绍如何使用Vue技术进行移动端开发,并给出具体的代码示例。一、准备工作...

  • 前端开发需要哪些软件

    前端开发需要哪些软件

    编程一般用的软件有:1、hbuilder;2、sublimetext;3、webstorm;4、phpstudy;5、dreamweaver;6、visualstudio;7、phpstorm;8、notepad等等。孔子说,“工欲善其...

  • win7硬件加速设置方法

    win7硬件加速设置方法

    有很多网民在玩一些游戏或运行一些大软件,下载大文件,可能会觉得系统运行不够无忧无虑,这次可以尝试加速硬件。下面的小边将为您介绍如何设置win7的硬件加速方法。1.右击桌面空白处,然后点击右键菜单中的屏幕分辨率选项。2.进入电脑屏幕分辨率设置...

  • Java 中的各种锁有哪些?

    Java 中的各种锁有哪些?

      Java中15种锁的介绍  在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:  公平锁/非公平锁  可重入锁/不可重入锁  独享锁/共享锁  互斥锁/读写锁  乐观锁...

  • 浅析Vue项目中怎么用Pinia状态管理工具

    浅析Vue项目中怎么用Pinia状态管理工具

    vue项目中怎么用pinia状态管理工具?下面本篇文章带大家聊聊vue项目中pinia状态管理工具的使用,希望对大家有所帮助!Pinia官网介绍说:Pinia是Vue的存储库,它允许您跨组件/页面共享状态。Vuex同样可以作为状态管理...

  • 周排行
  • 月排行
  • 年排行

精彩推荐