zoukankan      html  css  js  c++  java
  • vue——组件之间传值

    父向子传值

    1.父组件通过v-bind:属性绑定的形式,把数据传递给子组件

    <counter :number="count"></counter>

    2.子组件通过props接收父组件传递过来的数据

    <div>子组件的值~~{{number}}</div>
    export default {
      name: 'Counter',
      props:['number'],
    }

    子向父传值

    1.在v-bind:指令之前添加v-model指令

    <counter v-model:number="count"></counter>

    2.在子组件中声明emits自定义事件,格式为update:xxx

    export default {
      name: 'Counter',
      props:['number'],
      emits:['update:number'],
    }

    3.调用$emit()触发自定义事件,更新父组件中的数据

    add(){
          this.$emit('update:number',this.number + 1);
        }

    完整代码:

    <template>
      <div>父组件count的值~~{{count}}</div>
      <button type="button" @click="count+=1">+1</button>
      <hr/>
      <counter v-model:number="count"></counter>
    </template>
    
    <script>
    import Counter from './components/Counter.vue'
    export default {
      components:{
        Counter
      },
      data(){
        return{
          count:0
        }
      },
      methods:{
    
      }
    }
    </script>
    
    <style lang="less" scoped></style>
    <template>
      <div>
        <div>子组件的值~~{{number}}</div>
        <button @click="add">+1</button>
      </div>
    </template>
    
    <script>
    export default {
      name: 'Counter',
      props:['number'],
      emits:['update:number'],
      data() {
        return {
          
        }
      },
      methods:{
        add(){
          this.$emit('update:number',this.number + 1);
        }
      }
    }
    </script>
    
    <style scoped lang="less">
    
    </style>

    记录日常心得体会~~

  • 相关阅读:
    flex
    导航守卫 -vue
    H5 History
    JSX -react
    插槽slot -vue
    js 模拟鼠标绘制方块
    js 模拟滚动条
    js 实现简易留言板功能
    js 实现端口列表话
    js 为数组编写该方法;indexOf
  • 原文地址:https://www.cnblogs.com/cqiong/p/15716123.html
Copyright © 2011-2022 走看看