浅谈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 学习笔记 传智博客佟老师附详细注释
Sep 12 Javascript
JavaScript toFixed() 方法
Apr 15 Javascript
编写高性能Javascript代码的N条建议
Oct 12 Javascript
jquery ztree实现树的搜索功能
Feb 25 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
Jun 26 Javascript
简单谈谈ES6的六个小特性
Nov 18 Javascript
javascript动画系列之模拟滚动条
Dec 13 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
Dec 28 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
Jan 09 Javascript
关于vue的npm run dev和npm run build的区别介绍
Jan 14 Javascript
JS中getElementsByClassName与classList兼容性问题解决方案分析
Aug 07 Javascript
antd 表格列宽自适应方法以及错误处理操作
Oct 27 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&amp;&amp;mysql)五
2006/10/09 PHP
PHP中函数内引用全局变量的方法
2008/10/20 PHP
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
PHP简单读取PDF页数的实现方法
2016/07/21 PHP
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
2015/06/16 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
如何使用Vuex+Vue.js构建单页应用
2016/10/27 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
2017/08/30 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
vue中动态绑定表单元素的属性方法
2018/02/23 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
2018/05/11 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
[04:55]完美世界副总裁蔡玮:DOTA2的自由、公平与信任
2013/12/18 DOTA
[04:44]显微镜下的DOTA2第二期——你所没有注意到的细节
2014/06/20 DOTA
python操作摄像头截图实现远程监控的例子
2014/03/25 Python
Python使用functools模块中的partial函数生成偏函数
2016/07/02 Python
Python实现在线音乐播放器
2017/03/03 Python
python实现栅栏加解密 支持密钥加密
2019/03/20 Python
python 实现单通道转3通道
2019/12/03 Python
Python FFT合成波形的实例
2019/12/04 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
英国在线珠宝店:The Jewel Hut
2017/03/20 全球购物
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
石油大学毕业生自荐信
2014/01/28 职场文书
技校毕业生个人学习的自我评价
2014/02/21 职场文书
秋天的怀念教学反思
2014/04/28 职场文书
建筑工程技术专业求职信
2014/07/16 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书