浅谈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 获取用户客户端操作系统版本
Aug 25 Javascript
Jquery iframe内部出滚动条
Feb 11 Javascript
JavaScript实现自己的DOM选择器原理及代码
Mar 04 Javascript
javascript实现简单的Map示例介绍
Dec 23 Javascript
javascript跨域原因以及解决方案分享
Apr 08 Javascript
浅谈时钟的生成(js手写简洁代码)
Aug 20 Javascript
AngularJS实现网站换肤实例
Feb 19 Javascript
Node.js模块全局安装路径配置方法
May 17 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
Mar 05 Javascript
详解Vue调用手机相机和相册以及上传
May 05 Javascript
在vue中给后台接口传的值为数组的格式代码
Nov 12 Javascript
Node.js实现断点续传
Jun 23 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与SQL注入攻击防范小技巧
2011/09/16 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
2014/11/24 PHP
[原创]PHP简单开启curl的方法(测试可行)
2016/01/11 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
msn上的tab功能Firefox对childNodes处理的一个BUG
2008/01/21 Javascript
JS 中document.URL 和 windows.location.href 的区别
2009/11/11 Javascript
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
2010/03/27 Javascript
读jQuery之八 包装事件对象
2011/06/21 Javascript
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
2012/03/01 Javascript
前后台交互过程中json格式如何解析以及如何生成
2012/12/26 Javascript
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
2016/02/26 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
jQuery绑定事件-多种实现方式总结
2016/05/09 Javascript
jquery实现简单实用的轮播器
2017/05/23 jQuery
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
Vue在 Nuxt.js 中重定向 404 页面的方法
2019/04/23 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
javascript如何实现create方法
2019/11/04 Javascript
[46:16]2018DOTA2亚洲邀请赛3月30日 小组赛B组 iG VS VP
2018/03/31 DOTA
python处理圆角图片、圆形图片的例子
2014/04/25 Python
pycharm 使用心得(五)断点调试
2014/06/06 Python
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
基于python实现复制文件并重命名
2020/09/16 Python
CSS3轻松实现圆角效果
2017/11/09 HTML / CSS
学习心得体会
2014/01/01 职场文书
客户服务经理岗位职责
2014/01/29 职场文书
广告学专业求职信
2014/06/19 职场文书
2014党委书记四风对照检查材料思想汇报
2014/09/21 职场文书
个人职业及收入证明
2014/10/13 职场文书
七年级上册语文教学计划
2015/01/22 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
《认识钟表》教学反思
2016/02/16 职场文书
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers