浅谈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 相关文章推荐
js字符编码函数区别分析
Jun 05 Javascript
Js 获取HTML DOM节点元素的方法小结
Apr 24 Javascript
从数据库读取数据后将其输出成html标签的三种方法
Oct 13 Javascript
AngularJS学习笔记之ng-options指令
Jun 16 Javascript
实现非常简单的js双向数据绑定
Nov 06 Javascript
JavaScript如何禁止Backspace键
Dec 02 Javascript
JavaScript+CSS无限极分类效果完整实现方法
Dec 22 Javascript
JS添加或修改控件的样式(Class)实现方法
Oct 15 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
Jan 19 Javascript
AngularJs 终极购物车(实例讲解)
Nov 08 Javascript
一些你可能不熟悉的JS知识点总结
Mar 15 Javascript
详解javascript脚本何时会被执行
Feb 05 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类中private属性继承问题分析
2012/11/01 PHP
php制作动态随机验证码
2015/02/12 PHP
jquery+json实现的搜索加分页效果
2010/03/31 Javascript
javascript自执行函数之伪命名空间封装法
2010/12/25 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
2017/03/30 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
浅谈ES6 模板字符串的具体使用方法
2017/11/07 Javascript
JS基于贪心算法解决背包问题示例
2017/11/27 Javascript
详解react、redux、react-redux之间的关系
2018/04/11 Javascript
微信小程序使用canvas的画图操作示例
2019/01/18 Javascript
js实现跳一跳小游戏
2020/07/31 Javascript
python基础教程之序列详解
2014/08/29 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
python里 super类的工作原理详解
2019/06/19 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
Python 装饰器原理、定义与用法详解
2019/12/07 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
Urban Outfitters英国官网:美国平价服饰品牌
2016/11/25 全球购物
Gtech官方网站:地毯清洁器、吸尘器及园艺设备
2018/05/23 全球购物
最好的商品表达自己:Cafepress
2019/09/04 全球购物
Auguste The Label官网:澳大利亚一家精品女装时尚品牌
2020/06/14 全球购物
工程造价专业大学生职业生涯规划书
2014/01/18 职场文书
活动总结模板
2014/05/09 职场文书
暖通工程师岗位职责
2014/06/12 职场文书
信用卡催款律师函
2015/05/27 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
利用Pycharm连接服务器的全过程记录
2021/07/01 Python
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby