vue组件传值

1、父传子

父:传值:

,类似于自定义属性

<template>
  <div id="app">
   <Header :parentStr='parentStr'></Header>
  </div>
</template>

<script>
import Header from './components/Header.vue'
export default {
  name: 'App',
  data(){
    return{
      parentStr:'这是父组件的数据'
    }
  },
  components:{
    Header
  }
}
</script>

子:接收:props:{parentStr:String},须得在props里接收才能使用
props:[值名:值类型]或props:['parentStr']

<template>
  <div>
    <h1>这是header组件</h1>
    {{parentStr}}
  </div>
</template>

<script>
export default {
  props:[parentStr:String]
}
</script>

2、子传父

子传值:this.$emit ( 'changeEvent' , this.str ); 通过emit自定义一个changeEvent事件,并把str传过去
格式:this.$emit ( ' 自定义事件名 ' , 要传的值 )

<template>
  <div>
    <button @click="btn">按钮</button>
    {{str}}
  </div>
</template>

<script>
export default {
  data(){
    return{
     str:'这是子组件'
    }
  },
  methods:{
    btn(){ // 通过emit自定义一个changeEvent事件,并把str传过去
      this.$emit('changeEvent',this.str);
    }
  }
}
</script>

父接收:在methods中定义一个方法接收

<template>
  <div id="app">
   <Header @changeEvent="fn">按钮</Header>
  </div>
</template>

<script>
import Header from './components/Header.vue'
export default {
  name: 'App',
  data(){
    return{
      changeStr:''
    }
  },
  components:{
    Header
  },
  methods:{
    fn(val){
      this.changeStr = val;
      alert(this.changeStr);
    }
  }
}
</script>

你可能感兴趣的:(vue学习记录,vue.js,chrome,javascript)