Home > Web Front-end > Vue.js > What are the five ways to pass values ​​in Vue brother components?

What are the five ways to pass values ​​in Vue brother components?

醉折花枝作酒筹
Release: 2023-01-13 00:45:18
Original
21577 people have browsed it

The five methods are: 1. The parent component passes the value to the child component; 2. The child component passes the value to the parent component; 3. Define a custom event on the label in the parent component and obtain it inside the event. Parameters; 4. Trigger custom events in sub-components and pass parameters; 5. Pass parameters through the public component Bus.js.

What are the five ways to pass values ​​in Vue brother components?

The operating environment of this tutorial: windows7 system, vue2.9.6 version, DELL G3 computer.

Five ways to pass values ​​in vue components:

1. Parent components pass values ​​to subcomponents:

Bind the parent data to the subcomponent, and the subcomponent passes props accept parameters.

Next we use an example to illustrate how the parent component transfers values ​​​​to the child component: how to obtain the data in the parent component App.vue in the child component Users.vue users:["Henry","Bucky" ,"Emily"]

//App.vue父组件
<template>
  <div id="app">
    <users v-bind:users="users"></users>//前者自定义名称便于子组件调用,后者要传递数据名
  </div>
</template>
<script>
import Users from "./components/Users"
export default {
  name: &#39;App&#39;,
  data(){
    return{
      users:["Henry","Bucky","Emily"]
    }
  },
  components:{
    "users":Users
  }
}
Copy after login
//users子组件
<template>
  <div class="hello">
    <ul>
      <li v-for="user in users">{{user}}</li>//遍历传递过来的值,然后呈现到页面
    </ul>
  </div>
</template>
<script>
export default {
  name: &#39;HelloWorld&#39;,
  props:{
    users:{           //这个就是父组件中子标签自定义名字
      type:Array,
      required:true
    }
  }
}
</script>
Copy after login

2. The child component passes the value to the parent component:

Set the data to be transferred in the parent component 『data(){ id: value}』

Next, we use an example to illustrate how the sub-component passes a value to the parent component: when we click "Vue.js Demo", the sub-component passes the value to the parent component, and the text changes from the original "A value is passed" It becomes "child passes value to parent component" to realize the transfer of value from child component to parent component.

What are the five ways to pass values ​​in Vue brother components?

// 子组件
<template>
  <header>
    <h1 @click="changeTitle">{{title}}</h1>//绑定一个点击事件
  </header>
</template>
<script>
export default {
  name: &#39;app-header&#39;,
  data() {
    return {
      title:"Vue.js Demo"
    }
  },
  methods:{
    changeTitle() {
      this.$emit("titleChanged","子向父组件传值");//自定义事件  传递值“子向父组件传值”
    }
  }
}
</script>
Copy after login
// 父组件
<template>
  <div id="app">
    <app-header v-on:titleChanged="updateTitle" ></app-header>//与子组件titleChanged自定义事件保持一致
   // updateTitle($event)接受传递过来的文字
    <h2>{{title}}</h2>
  </div>
</template>
<script>
import Header from "./components/Header"
export default {
  name: &#39;App&#39;,
  data(){
    return{
      title:"传递的是一个值"
    }
  },
  methods:{
    updateTitle(e){   //声明这个函数
      this.title = e;
    }
  },
  components:{
   "app-header":Header,
  }
}
</script>
Copy after login

3. Define a custom event on the label in the parent component and get the parameters inside the event;

4. Trigger the custom event in the child component event and pass parameters. (this.$ emit('Custom event in parent component', parameters))

5. Pass parameters through the public component Bus.js

[Related recommendations: "vue.js tutorial》】

The above is the detailed content of What are the five ways to pass values ​​in Vue brother components?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template