美文网首页
8.父子组件的数据传递

8.父子组件的数据传递

作者: yaoyao妖妖 | 来源:发表于2018-07-07 17:07 被阅读19次

1.父组件通过属性向子组件传递参数,子组件用props接收,但是在vue中只可以用,不可以直接修改,这就是单向数据流的概念;
2.如何解决这个问题,就是在子组件的data中重新定义一个变量接收并返回这个值,使用的时候使用这个新定义的属性 。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>父子组件间的数据传递</title>
    <!--引入/vue.js-->
    <script src="./vue.js"> </script>
</head>
<body>
   <div id="root">
       <counter :count="1"></counter>
       <counter :count="2"></counter>

   </div>

   <script>

       //局部组件
       var counter = {
           props:['count'],
           data:function(){
               return {
                   number: this.count

               }
           },
           template:'<div @click="handleClick">{{count}}</div>',
           methods:{
               handleClick:function()
               {
                   this.number ++
               }
            } 
        }


       var app = new Vue({
           el:'#root', 
           components:{
            counter:counter
           },
           data:{
               total:0

           }       
       })

   </script>

</body>

</html>

子组件通过向外触发事件($emit)来告诉父组件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>父子组件间的数据传递</title>
    <!--引入/vue.js-->
    <script src="./vue.js"> </script>
</head>
<body>
   <div id="root">
       <counter :count="1" @inc="handleIncrese"></counter>
       <counter :count="2" @inc="handleIncrese"></counter>
       <div> {{total}}</div>

   </div>

   <script>

       //局部组件
       var counter = {
           props:['count'],
           data:function(){
               return {
                   number: this.count

               }
           },
           template:'<div @click="handleClick">{{count}}</div>',
           methods:{
               handleClick:function()
               {
                   this.number ++;
                   this.$emit('inc',1)
               }
            } 
        }


       var app = new Vue({
           el:'#root', 
           components:{
            counter:counter
           },
           data:{
               total:5

           },
           methods:{
            handleIncrese:function(step){
               this.total +=step
            }
           }
         
       })

   </script>

</body>

</html>

相关文章

  • Vue中组件间传值总结 ------ 2020-05-17

    父子组件间传递数据的方式 1、父组件向子组件传递数据 2、子组件向父组件传递数据 3、父子组件相互传递同一数据的两...

  • VUE组件通信的十种姿势

    父子组件通信 1、父子组件通过prop传递数据 父组件可以将一条数据传递给子组件,这条数据可以是动态的,父组件的数...

  • Vue 的组件之间如何通信

    1.父子组件之间的消息传递 父组件向子组件传递数据是通过prop传递的,子组件传递数据给父组件是通过$emit触发...

  • 8.父子组件的数据传递

    1.父组件通过属性向子组件传递参数,子组件用props接收,但是在vue中只可以用,不可以直接修改,这就是单向数据...

  • Vue 2.0 组件间数据传递

    父子组件数据传递 父组件单向传递给子组件 使用v-bind传递 父组件: 子组件: 子组件单向传递给父组件 使用 ...

  • 不同场景下组件的数据通信

    父子组件的数据通信 1.父组件传递数据给子组件(props) 2.子组件传递数据给父组件 (回调函数) {{par...

  • #搭建Vue+TypeScript项目(五)

    vue组件 组件中使用typescript 主文件 父子组件传递数据 子文件lefebar

  • vue学习

    vue中的事件传递 父子组件传值通过props传递,父组件 :name=“name(父数据)”子组件 props内...

  • React基础v2

    父子组件通信 props -父组件向子组件传递数据父组件import Header from './Header'...

  • 组件通信方式

    1.props 适用场景:父子组件通信注意事项:父组件给子组件传递数据(函数):实质是子组件给父组件传递数据父组件...

网友评论

      本文标题:8.父子组件的数据传递

      本文链接:https://www.haomeiwen.com/subject/uefguftx.html