浅谈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+FSO遍历文件夹下文件并显示
Mar 07 Javascript
对google个性主页的拖拽效果的js的完整注释[转]
Apr 10 Javascript
jQuery实现 注册时选择阅读条款 左右移动
Apr 11 Javascript
鼠标焦点离开文本框时验证的js代码
Jul 19 Javascript
JQuery获取样式中的background-color颜色值的问题
Aug 20 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
Jan 31 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
Aug 25 Javascript
浅析BootStrap栅格系统
Jun 07 Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
Oct 24 Javascript
jQuery基于排序功能实现上移、下移的方法
Nov 26 Javascript
vue配置文件实现代理v2版本的方法
Jun 21 Javascript
vue-autoui自匹配webapi的UI控件的实现
Mar 20 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中经典方法实现判断多维数组是否为空
2011/10/23 PHP
php的zip解压缩类pclzip使用示例
2014/03/14 PHP
Windows中使用计划任务自动执行PHP程序实例
2014/05/09 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
2020/08/17 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
juqery 学习之五 文档处理 插入
2011/02/11 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
JavaScript学习笔记之内置对象
2015/01/22 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
2018/01/04 Javascript
详解html-webpack-plugin用法全解
2018/01/22 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
2018/03/14 Javascript
JS文件中加载jquery.js的实例代码
2018/05/05 jQuery
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
2019/01/24 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
vue 中this.$set 动态绑定数据的案例讲解
2021/01/29 Vue.js
[01:27]2014DOTA2展望TI 剑指西雅图IG战队专访
2014/06/30 DOTA
解决.ui文件生成的.py文件运行不出现界面的方法
2019/06/19 Python
python redis连接 有序集合去重的代码
2019/08/04 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
2019/08/07 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
python读取与处理netcdf数据方式
2020/02/14 Python
Django 构建模板form表单的两种方法
2020/06/14 Python
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
canvas 实现 github404动态效果的示例代码
2017/11/15 HTML / CSS
eBay美国官网:eBay.com
2020/10/24 全球购物
英文版网络工程师求职信
2013/10/28 职场文书
家长会邀请书
2014/01/25 职场文书
学生会竞聘书范文
2014/03/31 职场文书
大学开学计划书
2014/04/30 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
学术研讨会主持词
2015/07/04 职场文书
2016小学优秀教师先进事迹材料
2016/02/26 职场文书
Python面向对象之成员相关知识总结
2021/06/24 Python
分享五个Node.js开发的优秀实践 
2022/04/07 NodeJs