Vue 子组件传父组件

vue中的传值是个很烦的问题,记录一下自己完成的这个需求。

首先,被引用的称之为子组件,当前页面为父组件,这个不能搞错。

  • 子组件传值,要用到this.$emit。
  • 子组件页面,需要在一个函数中使用this.$emit的方法来传。
 saves () {
      localStorage.setItem('note', this.note);
      this.h1 = localStorage.getItem('note');
      console.log(this.h1)
      // this.conShow = true
      // this.show = false
      // this.showBtn = true
      // 向父传
      this.$emit('hello', this.h1)  第一个参数是自定义的方法,第二个是要传的参数

    },
  • 接下来是父组件
  • 在父组件中,找到引用的这个组件,然后注册(v-on/@)刚刚在子组件定义的方法,这个很重要,在别的地方引用是拿不到的
<editor @hello='getHello'></editor>  editor是我引用的这个子组件。 =====hello是之前子组件中定义的那个方法,进行@,然后后面的getHello则是我们定义的方法。
  • 在methods中:
这里的getHello就是我们自己在上面定义的事件了
// 接子组件的参数,
    getHello (data) {  使用data来接收传过来的参数
      this.dcd = data  然后这里就可以对这个参数进行各种操作了
    },

彩蛋时间

  • 父和子传值是有语法糖的,可以使用.sync修饰符
  • 只要在想要同步的值后面加上.sync,就会自动同步,父组件改了,子组件也会跟着变,相当于双向绑定
  • 使用方法如下,在引入的子组件中,绑定一个事件(m是我自己定义的,随便写),后面.sync=‘你要传的数据‘
<child :m.sync='money'></child>

不要忘记在子组件props接收传过来的参数!!!

props: {
    m: String
  }
  • 如果你只是需要子组件拿到父组件的参数,那么上面这两步就已经完成双向绑定了,如果子组件需要传递参数给父组件,接着往下看??
  • 在子组件里,定义一个传参的方法
 getMore() {
            this.$emit('update:m', '给你8888') 这里和之前不同的是,update是固定的语法,不可改,:后面的m是你在父组件里绑定的那个事件,第二个参数一样是要传过去的值。
          }
  • 这样一来,两个组件的值就是同步的了,只要有一边改变,另外一边也会对应改变。

原文地址:https://www.cnblogs.com/zly430/p/10962875.html

时间: 2024-10-10 03:31:57

Vue 子组件传父组件的相关文章

vue子组件向传父组件传值

子组件: <template>     <div class="app">        <input @click="sendMsg" type="button" value="给父组件传递值">     </div> </template> <script> export default {       data () {         return

【转】Vue组件一-父组件传值给子组件

Vue组件一-父组件传值给子组件 开始 Vue组件是学习Vue框架最比较难的部分,而这部分难点我认为可以分为三个部分学习,即 组件的传值 - 父组件向子组件中传值 事件回馈 - 子组件向父组件发送消息,父组件监听消息 分发内容 整个博客使用的源代码-请点击 所以将用三篇博客分别进行介绍以上三种情况和使用 Vue的设计者对组件的理解 Vue的设计者,对组件和父组件之间的关系流上做了阐述,即单向数据流图:父组件向子组件传递数据,子组件回馈事件 组件意味着协同工作,通常父子组件会是这样的关系:组件 A

Vue子组件向父组件通信,父组件向子组件通信

首先,子组件代码如下 <template> <div style="border:1px solid black;width:400px;"> <h3>我是子组件里的</h3> <button>点击按钮子组件传递父组件</button> <div>我是父组件传子组件显示的:我还没有值</div> </div> </template> <script> ex

vue子组件给父组件传值

子组件: <template> <div class="app"> <input @click="sendMsg" type="button" value="给父组件传递值"> </div> </template> <script> export default { data () { return { //将msg传递给父组件 msg: "我是

vue系列(一)子组件和父组件

父组件传递数据到子组件props 父组件 <template> <div class="main"> <div class="top"> <span :class="{action:ind===index}" v-for="(item,index) in lanMenu" v-on:click="clickMenu(index,item.con)">{{ite

Vue 组件&amp;组件之间的通信 之 子组件向父组件传值

子组件向父组件传值:子组件通过$.emit()方法以事件形式向父组件发送消息传值: 使用步骤: 定义组件:现有自定义组件com-a.com-b,com-a是com-b的父组件: 准备获取数据:父组件com-a要获取子组件data中的height属性: 在子组件com-b中,需要用$.emit()方法将数据以事件的形式发送,$.emit('sendData', data, data…),红色的部分事件名可自定义,数据可传递多个: 在父组件中使用子组件的地方 <com-b @自定义事件名='getD

Vue 子组件调用父组件 $emit

<!DOCTYPE html><html>    <head>        <meta charset="utf-8">        <title>Vue 子组件调用父组件 $emit</title>    </head>    <body>        <div id="app">            <table border="2

Vue中利用$emit实现子组件向父组件通信

Vue中利用$emit实现子组件向父组件通信 父组件 <template> <div> <p>我是父组件</p> <child :isShow="show" @hidechild="hidechild"></child> <button @click="show=true">显示子组件</button> </div> </templa

Vue父组件向子组件传递方法(自定义方法)并且子组件向父组件传递数据

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con