vue组件传参问题

在vue项目中会经常遇到组件传参问题,今天就来了解一下父子组件和兄弟组件传参

父组件传值给子组件

*父组件通过 v-bind:参数名='变量名'传值给子组件
*子组件通过props接收

父组件:通过v-bind:参数名='变量名'传值
<template>
    <div>我是home
      <p>{{message}}</p>
      <p>{{number}}</p>
      <child :num="number"></child>//引入的子组件
    </div>
    
</template>
<script>
import {mapState,mapGetters,mapMutations} from 'vuex';
import child from './comp'
export default {
  name: 'home',
  data () {
    return {
      number:0,
      message:'我是父组件',
    }
  },
  components:{
    child
  },
  created(){
  },
  methods:{
  },
}
</script>
<style scoped>

</style>
子组件:通过props接收
<template>
    <div>
       <p>我是子组件</p> 
       <p>我是子组件的{{num}}</p>
    </div>
</template>
<script>
export default {
    data() {
        return {
            
        }
    },
    props:{
        num:Number
    },
}
</script>
<style scoped>

</style>

子组件传值给父组件

子组件:通过$emit发射数据
<template>
    <div>
       <p>我是子组件</p> 
       <p @click="addClick">我是子组件的count {{count}}</p>
    </div>
</template>
<script>
export default {
    data() {
        return {
           count:0 
        }
    },
    methods: {
        addClick(){
            this.count++;
            this.$emit('addClickpar',this.count)//
        }
    },
}
</script>
<style scoped>

</style>
父组件接收数据
<template>
    <div>我是home
      <p>我是父组件的countnum{{countnum}}</p>
      <child :num="number" v-on:addClickpar="addClickpar"></child>//在子组件标签中直接加入这个方法
    </div>
    
</template>
<script>
import {mapState,mapGetters,mapMutations} from 'vuex';
import child from './comp'
export default {
  name: 'home',
  data () {
    return {,
      countnum:0
    }
  },
  components:{
    child
  },
  created(){
      console.log(`this.router`,this.$route)
  },
  methods:{
    addClickpar(count){
      this.countnum = count;
    }
  },
}
</script>
<style scoped>

</style>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容