浅谈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 面向对象全新理练之继承与多态
Dec 03 Javascript
javaScript复制功能调用实现方案
Dec 13 Javascript
window.onload追加函数使用示例
Mar 03 Javascript
javascript中键盘事件用法实例分析
Jan 30 Javascript
搞定immutable.js详细说明
May 02 Javascript
BootStrap入门学习第一篇
Aug 28 Javascript
Javascript网页抢红包外挂实现分享
Jan 11 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
Aug 13 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
Aug 02 Javascript
scrapyd schedule.json setting 传入多个值问题
Aug 07 Javascript
JS中的算法与数据结构之列表(List)实例详解
Aug 16 Javascript
记录vue做微信自定义分享的一些问题
Sep 12 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
深入apache host的配置详解
2013/06/09 PHP
php设置允许大文件上传示例代码
2014/03/10 PHP
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
php观察者模式应用场景实例详解
2017/02/03 PHP
PHP使用new StdClass()创建空对象的方法分析
2017/06/06 PHP
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
基于JavaScript实现继承机制之构造函数方法对象冒充的使用详解
2013/05/07 Javascript
Query中click(),bind(),live(),delegate()的区别
2013/11/19 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
2016/06/17 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
Python中使用PDB库调试程序
2015/04/05 Python
python显示生日是星期几的方法
2015/05/27 Python
Python标准模块--ContextManager上下文管理器的具体用法
2017/11/27 Python
Python中文件的读取和写入操作
2018/04/27 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
对Python3之进程池与回调函数的实例详解
2019/01/22 Python
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
CSS3 完美实现圆角效果
2009/07/13 HTML / CSS
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
物流仓储实习自我鉴定
2013/09/25 职场文书
优秀大学生推荐信范文
2013/11/28 职场文书
表彰大会主持词
2014/03/26 职场文书
银行优秀员工事迹材料
2014/05/29 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
销售员试用期自我评价
2014/09/15 职场文书
员工2014年度工作总结
2014/12/09 职场文书
先进单位事迹材料
2014/12/25 职场文书
电影雷锋观后感
2015/06/10 职场文书
高三毕业感言
2015/07/30 职场文书
公司新员工欢迎词
2015/09/30 职场文书
小学四年级作文之写景
2019/08/23 职场文书
无线电知识基础入门篇
2022/02/18 无线电
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android