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


Posted in Javascript onAugust 22, 2017

本文介绍了浅谈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)
 })

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

Javascript 相关文章推荐
Javascript &amp; DHTML 实例编程(教程)DOM基础和基本API
Jun 02 Javascript
jquery 图片轮换效果
Jul 29 Javascript
理解JSON:3分钟课程
Oct 28 Javascript
jQuery实现伸展与合拢panel的方法
Apr 30 Javascript
window.location.reload 刷新使用分析(去对话框)
Nov 11 Javascript
jQuery图片渐变特效的简单实现
Jun 25 Javascript
使用do...while的方法输入一个月中所有的周日(实例代码)
Jul 22 Javascript
javascript设计模式之module(模块)模式
Aug 19 Javascript
js中let和var定义变量的区别
Feb 08 Javascript
Vue代码整洁之去重方法整理
Aug 06 Javascript
在Vue中实现随hash改变响应菜单高亮
Mar 09 Javascript
js实现简单抽奖功能
Nov 24 Javascript
纯js实现图片匀速淡入淡出效果
Aug 22 #Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
Aug 22 #Javascript
Angular中响应式表单的三种更新值方法详析
Aug 22 #Javascript
jQuery插件DataTables分页开发心得体会
Aug 22 #jQuery
React学习笔记之列表渲染示例详解
Aug 22 #Javascript
bootstrap switch开关组件使用方法详解
Aug 22 #Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
Aug 22 #Javascript
You might like
不错的一篇面向对象的PHP开发模式(简写版)
2007/03/15 PHP
简单示例AJAX结合PHP代码实现登录效果代码
2008/07/25 PHP
PHP写的求多项式导数的函数代码
2012/07/04 PHP
基于PHP生成静态页的实现方法
2013/05/10 PHP
PHP代码审核的详细介绍
2013/06/13 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
javascript 异常处理使用总结
2009/06/21 Javascript
jQuery 判断页面元素是否存在的代码
2009/08/14 Javascript
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
2011/01/12 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
2016/08/31 Javascript
最实用的jQuery分页插件
2016/10/09 Javascript
pm2 部署 node的三种方法示例
2017/10/20 Javascript
vue+iview写个弹框的示例代码
2017/12/05 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
如何在JavaScript中创建具有多个空格的字符串?
2020/02/23 Javascript
Jquery滑动门/tab切换实现方法完整示例
2020/06/05 jQuery
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
[27:08]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第二场 11.21
2020/11/23 DOTA
python进阶教程之循环相关函数range、enumerate、zip
2014/08/30 Python
python图像处理之反色实现方法
2015/05/30 Python
Python数据类型详解(四)字典:dict
2016/05/12 Python
python数据结构之列表和元组的详解
2017/09/23 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
详解Html5中video标签那些属性和方法
2019/07/01 HTML / CSS
美国儿童运动鞋和服装零售商:Kids Foot Locker
2017/08/05 全球购物
教师个人考察材料
2014/12/16 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
办公用品质量保证书
2015/05/11 职场文书
2016年敬老月活动总结
2016/04/05 职场文书
整理Python中常用的conda命令操作
2021/06/15 Python
一文搞懂php的垃圾回收机制
2021/06/18 PHP
python实现双向链表原理
2022/05/25 Python