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>

    记录日常心得体会~~

  • 相关阅读:
    MySQL5.6.26升级到MySQL5.7.9实战方案【转】
    bootstrap-markdown编辑器引入
    yii获取当前url和域名
    RabbitMQ消息队列在PHP下的应用
    解决 PHPExcel 长数字串显示为科学计数
    Linux实现https方式访问站点
    layui关闭弹出层
    vscode中iframe的使用
    tomcat运行超时问题解决
    Linux安装solr
  • 原文地址:https://www.cnblogs.com/cqiong/p/15716123.html
Copyright © 2011-2022 走看看