vue程序在组件中进行传值有多种方式,这里记录我在项目中使用到的三种:
1. 父组件向子组件传值
2. 子组件向父组件传值
3. 通过路由传参
  1. 父组件通过props向子组件传值

在子组件script中声明所要接收的参数名称以及类型


props: {
deliverValue: String
}

在父组件template中使用子组件并向子组件传值


<v-child :deliverValue="s"></v-child>

完成上面的步骤后可直接在子组件中使用传递的参数值(方法与访问data中的值一样)

2. 子组件通过事件向父组件传参

在子组件中:


<button @click="$emit('change-value', 1)">change value button</button>
// 或在脚本中定义对应的方法进行时间触发
// <button @click="change">change value button</button>
// ...
// ...
// methods: {
// change () {
// this.$emit('change-value', 1)
// }
// }

vm.$emit( eventName, […args] )
$emit是vue实例的方法,用于触发当前实例上的事件。第一个参数表示触发的方法名,第二个为附加的参数。
可根据需要决定是否传参。

在父组件中:


<v-child @change-value:"change"><v-child>
...
methods: {
change (val) {
console.log(val) // 1
}
}

3 通过路由进行传值

在需要路由跳转的地方:


<router-link :to="{name: 'onlinemap', params: { index: 'dom' }}"><button>跳转到在线地图</button></router-link >

1. 其中v-bind:to需要传入的数据为键值对对象,因此在定义此路由时,需添加name属性
(这里onlinemap就是在线地图页面路由的name属性值)
2.使用路由传参的其他方法:https://router.vuejs.org/zh/guide/essentials/passing-props.html

在目标页面:


var param = this.$route.params.index

获取参数

原文地址:https://segmentfault.com/a/1190000017155239

vue程序中组件间的传值方式的更多相关文章

  1. Vue中组件间通信的方式

    Vue中组件间通信的方式 Vue中组件间通信包括父子组件.兄弟组件.隔代组件之间通信. props $emit 这种组件通信的方式是我们运用的非常多的一种,props以单向数据流的形式可以很好的完成父 ...

  2. React中组件间通信的方式

    React中组件间通信的方式 React中组件间通信包括父子组件.兄弟组件.隔代组件.非嵌套组件之间通信. Props props适用于父子组件的通信,props以单向数据流的形式可以很好的完成父子组 ...

  3. Vue—非父子组件间的传值(Bus/发布订阅模式/观察者模式/总线)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. vue组件间的传值方式及方法调用汇总

    1.传值 a.父组件传子组件 方法一: 父页面: <myReportContent v-if="contentState==1" :paramsProps='paramsPr ...

  5. 【vue】父子组件间通信----传值

    官方文档参考 (一)父组件 向 子组件 传值 ①在父组件中调用子组件处,绑定要传的数据data1, 如 <nav  :data1=" "  ></nav> ...

  6. Vue中组件间传值常用的几种方式

    版本说明: vue-cli:3.0 一.父子组件间传值 1.props/$emit -父组件==>>子组件: 子组件中通过定义props接收父组件中通过v-bind绑定的数据 父组件代码 ...

  7. Vue学习(二)-Vue中组件间传值常用的几种方式

    版本说明:vue-cli:3.0 主要分为两类: 1.父子组件间的传值 2.非父子组件间的传值 1.父子组件间传值 父组件向子组件传值 第一种方式: props 父组件嵌套的子组件中,使用v-bind ...

  8. vue组件定义方式,vue父子组件间的传值

    vue组件定义方式,vue父子组件间的传值 <!DOCTYPE html> <html lang="zh-cn"> <head> <met ...

  9. vue 和 react 组件间通信方法对比

    vue 和 react 组件间通信方法对比: 通信路径 vue的方法 react的方法 父组件 => 子组件 props(推荐).slot(推荐).this.$refs.this.$childr ...

随机推荐

  1. Tarjan缩点+DAG图dp

    题目背景 缩点+DP 题目描述 给定一个n个点m条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大.你只需要求出这个权值和. 允许多次经过一条边或者一个点,但是,重复经过的点,权值只 ...

  2. 官方Java编码规范

    先由Sun制定,之后Sun把Java卖给了Oracle,最后就成了Oracle制定的了.但是版本比较旧了,停留在1999年. 相比Google的编码规范,罪名写的却别就是Sun采用的是4个空格进行缩进 ...

  3. The Process class relies on proc_open, which is not available on your PHP installation

    [Symfony\Component\Process\Exception\RuntimeException] The Process class relies on proc_open, which ...

  4. nginx 自签名https

    繁杂的命令,以下准备写好的sh,拷贝https.sh文件,设置执行权限:chmod u+x https.sh #!/bin/sh # create self-signed server certifi ...

  5. andriod 获得应用程序名称

    import android.annotation.TargetApi; import android.app.Activity; import android.app.AlertDialog; im ...

  6. jquery中美元符号($)命名冲突

    http://blog.csdn.net/shanshan209/article/details/6341727 在Jquery中,$是JQuery的别名,所有使用$的地方也都可以使用JQuery来替 ...

  7. 转: 浅析Fusion-IO和Intel SSD

    from: http://alanwu.blog.51cto.com/3652632/865235 标签:SSD 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否 ...

  8. docker 容器 日志占用空间过大问题处理

    docker 容器 日志占用空间过大问题处理 # 2017 10 09 优化docker 运行产生的日志 path=/var/lib/docker/containers/ cd $path for f ...

  9. 修改 百度地图 infowindow 默认样式

    1.百度 api 没有 提供可以修改 infowindow 默认样式的 方法. 如需修改,需要 自定义 替换 默认样式. demo.html <!DOCTYPE html> <htm ...

  10. div和img之间的缝隙问题

    这次做的项目,客户说.banner图的上下之间不要留有空隙,细致一看才发现,上下居然都有空隙.审查元素,发现全部的div,img的padding和margin都是0,对于这个间隙到底是假设产生的真的是 ...