5.vue组件间的数值传递(父子)

2018-04-09  本文已影响0人  悟空你又瘦了

VUE父子组件的关系可以总结为 props down, events up 。

//父组件 newslist 
<template >
 <div class="tmp1">  
         <newsshow :parentMessage="parentMessage"  @childEvent="parentMethod"  ></newsshow>
    ----  :parentMessage="parentMessage"  就是  v-bind:parentMessage="parentMessage"    
      然后子组件props: ['parentMessage'],就可以拿到父组件的parentMessage变量了

    ----  @childEvent="parentMethod"  就是  v-on:childEvent="parentMethod"  
      然后父组件定义一个  parentMethod  函数来处理子组件传递来内容
     this.$emit('childEvent', { name: 'wsh', age:  10 }); ---通过$emit给父组件传递内容
  </div>    
</template>

<script>
    import newsshow from './newsshow';
    export default{             
        data(){
             return {
                parentMessage:'我是来自父组件的消',      
           }
        },

       methods:{        
        parentMethod({ name, age }) {
           console.log( name, age); ---打印出子组件传递来内容
         }
       },
        components:{
            newsshow
        },   

    }

</script>

<style scoped>
    .mui-table-view span{
        position: absolute;
        top: 27px;
        right: 0;
    }
    .mui-table-view .mui-ellipsis{
        margin-top: 10px;
    }
</style>
//子组件 newsshow
<template> 
            <div> 
               <h3>我是子组件一</h3> 
                <span>{{parentMessage}}</span>   ----渲染父组件传递过来的内容
                <textarea ref="commentContent" placeholder="请输入要评论的内容..">111</textarea>
            </div>

</template>

 <script>
     export default{ 
        props: ['parentMessage'],    -----管道,获取父组件的内容 
        mounted() {
          this.$emit('childEvent', { name: 'wsh', age:  10 }); ---通过$emit传递给父组件内容
          var txt = this.$refs.commentContent.value; ---获取textarea 文本框的内容,打印出来
          console.log(txt)          
       },

     }; 

 </script>

  <style scoped>

   </style>

https://www.jianshu.com/p/649929d88699

上一篇 下一篇

猜你喜欢

热点阅读