浅谈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 相关文章推荐
Jquery ajaxsubmit上传图片实现代码
Nov 04 Javascript
jquery iframe操作详细解析
Nov 20 Javascript
JavaScript中提前声明变量或函数例子
Nov 12 Javascript
JavaScript使用二分查找算法在数组中查找数据的方法
Apr 07 Javascript
Angular 路由route实例代码
Jul 12 Javascript
jQuery增加、删除及修改select option的方法
Aug 19 Javascript
JavaScript利用正则表达式替换字符串中的内容
Dec 12 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
Dec 13 Javascript
使用pm2自动化部署node项目的方法步骤
Jan 28 Javascript
javascript面向对象三大特征之多态实例详解
Jul 24 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
Sep 03 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
Sep 21 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
杏林同学录(七)
2006/10/09 PHP
php中数组首字符过滤功能代码
2012/07/31 PHP
微信 getAccessToken方法详解及实例
2016/11/23 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
PHP基于array_unique实现二维数组去重
2020/07/14 PHP
基于Jquery插件开发之图片放大镜效果(仿淘宝)
2011/11/19 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
jquery简单实现图片切换效果的方法
2015/05/12 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
jQuery插件ajaxFileUpload使用实例解析
2016/10/19 Javascript
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
2017/01/19 Javascript
nodejs动态创建二维码的方法
2017/08/12 NodeJs
ES10的13个新特性示例(小结)
2019/09/23 Javascript
[01:20:05]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第二场 2月5日
2021/03/11 DOTA
Python机器学习logistic回归代码解析
2018/01/17 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
python获取交互式ssh shell的方法
2019/02/14 Python
python命令行工具Click快速掌握
2019/07/04 Python
python实时检测键盘输入函数的示例
2019/07/17 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
Python sorted排序方法如何实现
2020/03/31 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
一个精品风格的世界:Atterley
2019/05/01 全球购物
局域网标准
2016/09/10 面试题
道德模范先进事迹
2014/02/14 职场文书
优秀毕业生推荐信范文
2014/03/07 职场文书
乡镇纠风工作实施方案
2014/03/22 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
人身损害赔偿协议书格式
2014/11/01 职场文书
西柏坡观后感
2015/06/08 职场文书
欠款证明
2015/06/24 职场文书
董事长秘书工作总结
2015/08/14 职场文书
2015年成本会计工作总结
2015/10/14 职场文书
分析ZooKeeper分布式锁的实现
2021/06/30 Java/Android