浅谈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 使用技巧精萃(.net html
Apr 25 Javascript
jQuery中prop()方法用法实例
Jan 05 Javascript
jQuery oLoader实现的加载图片和页面效果
Mar 14 Javascript
JavaScript调用浏览器打印功能实例分析
Jul 17 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
Jul 15 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
Aug 15 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
Apr 27 jQuery
微信小程序url与token设置详解
Sep 26 Javascript
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
Mar 10 Javascript
vue 监听屏幕高度的实例
Sep 05 Javascript
mpvue+vuex搭建小程序详细教程(完整步骤)
Sep 30 Javascript
微信小程序用户盒子、宫格列表的实现
Jul 01 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生成缩略图示例代码分享(使用gd库实现)
2014/01/20 PHP
PHP不用递归遍历目录下所有文件的代码
2014/07/04 PHP
php字符串按照单词进行反转的方法
2015/03/14 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
WordPress分页伪静态加html后缀
2016/06/08 PHP
PHP数组实例详解
2016/06/26 PHP
Prototype使用指南之range.js
2007/01/10 Javascript
js实现目录定位正文示例
2013/11/14 Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
2014/08/07 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
nodejs redis 发布订阅机制封装实现方法及实例代码
2016/12/15 NodeJs
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
2018/06/06 Javascript
4个顶级JavaScript高级文本编辑器
2018/10/10 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
JavaScript oncopy事件用法实例解析
2020/05/13 Javascript
js实现随机点名功能
2020/12/23 Javascript
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
Python内置函数delattr的具体用法
2017/11/23 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
2018/02/07 Python
python中for循环输出列表索引与对应的值方法
2018/11/07 Python
python添加菜单图文讲解
2019/06/04 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
网吧消防安全制度
2014/01/28 职场文书
企业总经理岗位职责
2014/02/13 职场文书
校园联欢晚会主持词
2014/03/17 职场文书
学校端午节活动方案
2014/08/23 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书