全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

浅谈Vue父子组件和非父子组件传值问题

本文介绍了浅谈Vue父子组件和非父子组件传值问题,分享给大家,具体如下:

1.如何创建组件

1.新建一个组件,如:在goods文件夹下新建goodsList.vue

<template>
  <div class='tmpl'>
    goodsList组件
  </div>
</template>

<style>

</style>

<script>

  export default {
    data() {
      return{}
    },
    created() {

    },
    methods: {

    },
    components:{

    }
  }
</script>

2.在main.js中引入 import goodsList from 'goods/goodsList.vue'

3.在main.js中创建路由对象,创建路由规则

const router = new VerRouter({
  routes[
    {path:/goods/goodsList,component:goodsList}
  ]
})

4.在主组件App.vue中设置 <router-link to="/goods/goodsList">商品列表</router-link>

系统会自动帮我们把这个标签转化为a标签href="#/goods/goodsList" rel="external nofollow"

2.如何在父组件中嵌入子组件

1.新建一个子组件 subcomponent.vue

2.在父组件中引入 import subComponent from '../subComponent/subcomponent.vue'

3.在父组件中注册 components

 export default {
    components:{
      //如果属性名和值相同,可以简写
      subComponent
    }
  }

4.在父组件指定位置写一个自定义标签<subComponent></subComponent>

3.如何实现父子组件之间的传值

1.父组件向子组件传值

1.在子组件中设置props:['commentId'] //子组件用来接收父组件传递过来值的属性名称

2.在父组件的自定义子组件标签中设置<subComponent :commentId="this.$route.params.photoId"></subComponent>//父组件传递值给子组件

2.子组件向父组件传值

1.在父组件的自定义标签中设置一个自定义函数<subComponent v-on:paramsChange="getSubComponentParams"></subComponent>

2.在父组件的methods中声明函数

  getSubComponentParams(params){
  //接收来自子组件的参数params
    this.myParams = params;
  }

3.在子组件中传递参数

  /**
  * 参数1:要触发的事件名称
  * 参数2:传递的值
  */
  this.$emit('paramsChange',this.params)

如何实现非父子组件的传值

非父子组件中两个组件没有联系,不能使用this来传值,所以我们只能通过第三方的变量,来达到传值的效果,这个第三方变量就是:

使用一个空的 Vue 实例作为中央事件总线

传值步骤:

1.创建一个公用js组件 在组件内导出一个空的Vue实例,比如新建一个commonvue.js文件

import Vue from 'vue'

export default new Vue() //es6的写法
/**
 * 相当于下面这样写
 * 
 * const bus = new Vue()
 * module.exports = bus
 */

2.在组件A中传递参数

bus.$emit('goodsCount',this.myCount)

3.在组件B中接收参数

bus.$on('goodsCount',(goodsCount)=>{
   const oldVal = $("#badgeId").text()

   const lastVal = parseInt(oldVal) + goodsCount
   console.log(lastVal)
   $("#badgeId").text(lastVal)
 })

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# vue  # 非父子组件传值  # vue父子组件传值  # vuejs  # 父子组件传值  # vue父组件向子组件动态传值的两种方法  # vue3 父子组件间相互传值方式  # vue3 父子组件传值详解  # Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)  # vue 子组件向父组件传值方法  # Vue父子模版传值及组件传值的三种方法  # 详解Vue之父子组件传值  # uniapp父子组件传值3种方法(props、slot和ref)  # 自定义  # 第三方  # 如何实现  # 新建一个  # 给大家  # 转化为  # 浅谈  # 创建一个  # 大家多多  # 自定  # 如何在  # default  # data  # return  # style  # created  # export  # script  # router  # br 


相关文章: 如何快速辨别茅台真假?关键步骤解析  建站之星云端配置指南:模板选择与SEO优化一键生成  如何快速登录WAP自助建站平台?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  如何在景安服务器上快速搭建个人网站?  如何在阿里云香港服务器快速搭建网站?  如何选择可靠的免备案建站服务器?  XML的“混合内容”是什么 怎么用DTD或XSD定义  如何选择PHP开源工具快速搭建网站?  网站制作新手教程,新手建设一个网站需要注意些什么?  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  建站主机选哪家性价比最高?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  ,想在网上投简历,哪几个网站比较好?  移民网站制作流程,怎么看加拿大移民官网?  如何在万网ECS上快速搭建专属网站?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  如何选择高效便捷的WAP商城建站系统?  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  教学网站制作软件,学习*后期制作的网站有哪些?  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  如何获取PHP WAP自助建站系统源码?  建站之家VIP精选网站模板与SEO优化教程整合指南  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  建站之星安装后如何配置SEO及设计样式?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  宝塔建站教程:一键部署配置流程与SEO优化实战指南  如何规划企业建站流程的关键步骤?  如何通过VPS建站无需域名直接访问?  建站之星代理如何优化在线客服效率?  个人网站制作流程图片大全,个人网站如何注销?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  建站主机助手选型指南:2025年热门推荐与高效部署技巧  零基础网站服务器架设实战:轻量应用与域名解析配置指南  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  如何在服务器上配置二级域名建站?  如何在阿里云服务器自主搭建网站?  公司网站制作价格怎么算,公司办个官网需要多少钱?  盘锦网站制作公司,盘锦大洼有多少5G网站?  如何在七牛云存储上搭建网站并设置自定义域名?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  清除minerd进程的简单方法  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  建站之星后台密码遗忘如何找回?  网站制作知乎推荐,想做自己的网站用什么工具比较好?  如何在阿里云虚拟主机上快速搭建个人网站?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。