Vue组件之间的传值方法

在vue当中有两种组件之间的传值方法,分别是 * 父子组件* 之间的传值和* 非父子组件 *之间的传值方法

父子组件之间的传值方法

  • 父子组件之间的传值分为两种 *

父组件给子组件传值

子组件给父组件之间的传值

父组件给子组件传值方法

// 父
<div id = "app">
    <my-content></my-content>
</div>

// 子
<template id="content">
    <div class="content">
     这里是内容区域--- {{ msg }}
    </div>
</template>

可以直接在父组件调用子组件的地方添加一个自定义属性test,属性值为测试

<my-content test = "测试" ></my-content>

在子组件定义的地方,添加一个选项 props, 值为数组, 数组元素为之前自定义的属性 test

const MyContent = {
    props: ['test'],
    template: "#content"
}

接下来就可以在子组件中通过 {{ test }}或者其他的vue的用法使用这个值

父组件在调用子组件的地方,添加一个自定义的属性,属性的值为你需要传递给子组件的值,
在子组件定义的地方,添加了一个props选项,它的值是一个由自定义属性组合而成的数组,
在子组件的模板中,通过自定的属性名就可以获取到父组件传递过来的值

拓展:假如父组件给子组件传的值是子组件不想要的呢? --- 子组件需要验证数据的类型,这一步是项目中常用的

props: {
   test: String
}

拓展: 如果你需要的传递的值是一个变量,需要使用到绑定属性

<my-content :test = "msg" ></my-content>

父组件在调用子组件的地方,添加一个自定义的属性,属性的值为你需要传递给子组件的值,如果需要传递的值是变量,那么需要使用到绑定属性
在子组件定义的地方,添加了一个props选项,它的值是一个由自定义属性组合而成的数组或者是一个对象,如果需要数据类型的校验,则使用对象,否则可以使用数组,
在子组件的模板中,通过自定的属性名就可以获取到父组件传递过来的值

子组件给父组件传值

水往地处流,如果向往高处流,就需要付出代价
08子给父传.html

子组件中,通过某一个事件,执行 this.$emit(‘自定义的事件‘, ‘需要传递的值‘),

sendData () {
    console.log('给父组件传值')
    this.$emit('my-event-test', '11223344')
}

在父组件调用子组件的地方,给它 绑定了 子组件中 自定义的事件,事件的实现由父组件实现,注意绑定事件中不要添加(),


<my-content @my-event-test = "getData"></my-content>

在父组件中实现时添加 参数,参数就是传递过来的值

getData (val) {
console.log(val)
}

子组件中,通过某一个事件,执行 this.$emit(‘自定义的事件‘, ‘需要传递的值‘),在父组件调用子组件的地方,给它 绑定了 子组件中 自定义的事件,事件的实现由父组件实现,注意绑定事件中不要添加(),在父组件中实现时添加 参数,参数就是传递过来的值

非父子组件间传值

1 -> 2 父给子传

2 -> 1 / 3 -> 1 子给父传

2 -> 3 2 -> 1 -> 3

2 -> 4 2 -> 1 -> 3 - >5 ->4

有没有一种方式可以简单一点传递呢? 2 - > 车 -> 4

2 - > 村长 ----- 广播

4 --- 你 ---- 接收信息 ------ 首先必须得在村里车 --- 》 中央事件总线 ----- const bus = new Vue()

4 先表明可以 接收数据 bus.$on(‘自定义事件‘, function (val) {})

2 如果想要发送消息 bus.$emit(‘自定义事件‘, val)

弊端: 必须的先接收,然后发送才是有效的 ---- vue状态管理器

原文地址:https://www.cnblogs.com/Alangc612/p/11354569.html

时间: 2024-11-01 01:42:53

Vue组件之间的传值方法的相关文章

vue 组件之间的传值

组件之间的传值有三种  1,父组件给子组件传值 ,   2,子组件给父组件传值   3, 非父子组件之间的传值(又叫兄弟组件传值) 1.父组件给子组件传值   (父组件给子组件传值需要通过props) 首先我的页面结构是这样的  child是子组件   father是父组件, 在这里我新建一个父组件  father.vue <template> <div> <div>这是父组件</div> <!-- 使用组件child --> <child

【vue组件之间互相传值:父传子,子传父】

今看到一篇很不错的vue组件传值文章,便于理解,遂做笔记- 一般页面的视图App.vue应为这样 一.父组件向子组件传值 1.创建子组件,在src/components/文件夹下新建一个Child.vue2.Child.vue的中创建props,然后创建一个名为message的属性 3.在App.vue中注册Child组件,并在template中加入child标签,标签中添加message属性并赋值 4.保存修改的文件,查看浏览器 5.我们依然可以对message的值进行v-bind动态绑定 此

vue组件之间的传值方式

一.父组件向子组件传值方式 1.1父组件向子组件传数据方式 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta

vue 学习五 深入了解components(父子组件之间的传值)

上一章记录了 如何在父组件中向子组件传值,但在实际应用中,往往子组件也要向父组件中传递数据,那么此时我们应该怎么办呢 1.在父组件内使用v-on监听子组件事件,并在子组件中使用$emit传递数据 //父组件 <template> <div id="home"> <com test='12345' test2='1213232111111' @a_even="a_even"></com> //使用v-on监听子组件事件

vue中组件之间的传值

按照对象分类: 一.父子组件之间的传值 1.使用props和$emit 2.在引入的子组件中使用ref,通过this.$refs.xxx.方法/值来获取子组件中的方法或者值 3.子组件中使用this.$parent来获取父组件中的值或者方法 4.父组件中使用this.$children来获取子组件中的值或者方法 二.兄弟组件中的传值 1.使用eventBus作为中间件,然后使用$emit去抛出事件,使用$on去监听事件 这里要注意一些事项:a.bus.$emit在beforeDestroy中去触

Vue组件之间的传参

Vue组件之间的传参方式有三种 第一:父传子 第二:子传父 第三:兄弟之间相传 第一,父传子,顾名思义,外层组件传参给嵌套内部的组件 在父代中嵌套的标签 <son v-bind:toSon="fatherData"></son> //发送数据给子代 在子代中接收数据 需要添加一个属性叫做prpos props:["toSon"], <!DOCTYPE html> <html lang="en"> &

事件总线bus解决兄弟组件之间的传值

原文引用https://www.dazhuanlan.com/2019/08/25/5d625951eff92/ 事件总线bus解决兄弟组件之间的传值 实际运用: 封装一个Bus.js 123 import Vue from 'vue'const Bus = new Vue()export default Bus 在组件调用时引入 组件一: 1234567891011121314 import Bus from './Bus' export default { data() { return {

vue组件之间值传递四种方法汇总

1.父组件获取子组件的数据和方法 $refs 子组件: <template> <div class="header"> <h3>{{ zz }}</h3> </div></template> <script>export default { name: 'cx', data () { return { zz: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX' } }, methods: {

Vue之父子组件之间的传值

父组件,首先要挂载子组件 如果父组件传值给子组件,则 <transition mode="out-in"> <router-view  :applyList='applyList'  applyPath='flightBstrip'></router-view> </transition> 1.父组件挂载子组件的时候声明属性 applyList,applyPath.(applyList是变量,flightBstrip是字符串) 2.子组件