浅谈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 相关文章推荐
麦鸡的TAB切换功能结合了javascript和css
Dec 17 Javascript
获取HTML DOM节点元素的方法的总结
Aug 21 Javascript
javascript中将Object转换为String函数代码 (json str)
Apr 29 Javascript
jquery动态加载js三种方法实例
Aug 03 Javascript
js实现从数组里随机获取元素
Jan 12 Javascript
解析javascript中鼠标滚轮事件
May 26 Javascript
javascript基于prototype实现类似OOP继承的方法
Dec 16 Javascript
理解JavaScript原型链
Oct 25 Javascript
node.js操作mongodb简单示例分享
May 25 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
Jan 17 Javascript
vant自定义二级菜单操作
Nov 02 Javascript
js实现限定区域范围拖拉拽效果
Nov 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/05/11 PHP
PHP获取数组中某元素的位置及array_keys函数应用
2013/01/29 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
Zend Framework过滤器Zend_Filter用法详解
2016/12/09 PHP
PHP iconv()函数字符编码转换的问题讲解
2019/03/22 PHP
用javascript实现在小方框中浏览大图的代码
2007/08/14 Javascript
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
2014/08/18 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
2016/05/10 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
React组件的三种写法总结
2017/01/12 Javascript
微信小程序模板之分页滑动栏
2017/02/10 Javascript
JS实现多张图片预览同步上传功能
2017/06/23 Javascript
理解Angular的providers给Http添加默认headers
2017/07/04 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
python错误处理详解
2014/09/28 Python
使用Python的判断语句模拟三目运算
2015/04/24 Python
python操作ie登陆土豆网的方法
2015/05/09 Python
python单元测试unittest实例详解
2015/05/11 Python
Python 搭建Web站点之Web服务器网关接口
2016/11/06 Python
Python中int()函数的用法浅析
2017/10/17 Python
浅谈python可视化包Bokeh
2018/02/07 Python
在python中利用GDAL对tif文件进行读写的方法
2018/11/29 Python
flask应用部署到服务器的方法
2019/07/12 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
AURALog面试题软件测试方面
2013/10/22 面试题
优纳科技软件测试面试题
2012/05/15 面试题
优秀学生获奖感言
2014/02/15 职场文书
客户接待方案
2014/02/26 职场文书
大学生工作自荐书
2014/06/16 职场文书
2015年小学校长工作总结
2015/05/19 职场文书
医院见习总结
2015/06/24 职场文书