zoukankan      html  css  js  c++  java
  • VUE开发中.sync 修饰符的作用

    其实这个修饰符就是vue封装了  子组件要修改父组件传过来的动态值的语法糖,省去了父组件需要写的方法,但是子组件emit时要加上update

    官方解释:↓

    在有些情况下,我们可能需要对一个 prop 进行“双向绑定”。不幸的是,真正的双向绑定会带来维护上的问题,因为子组件可以修改父组件,且在父组件和子组件都没有明显的改动来源。

    看代码:

    // 这里父组件,要给子组件传一个title的值
    <template>
        <div>   
            <t-title :title.sync="fatherTitle"></t-title>
        </div>
    </template>
    <script>
    import tTitle from './blocks/list';
    export default {
        name: 'test1',
        components: {  tTitle },
        data() {
            return {
                fatherTitle: '父组件给的标题'
            };
        },
    }
    </script>
    

      这时候当我们在子组件内部的方法想去修改这个标题

    // 子组件
    <template>
        <div>
            <h3>{{ title }}</h3>
            <button @click="changeTitle">改变</button>
        </div>
    </template>
    <script>
    export default {
        props:{
            title: {type: String, default: '默认值11'}
        },
        methods: {
            changeTitle() {
                this.$emit("update:title", "子组件要改自己的标题");
            }
        }
    };
    </script>
    
    这里关键就是emit里的参数要写成'update'+ ':' +'要修改的props'
    

      这样就可以了,父组件就不要再去写个方法接受这个值然后再去改传的参数,是不是很方便

  • 相关阅读:
    du熊学斐波那契I
    《博客园精华集》分类索引
    C++中指针和引用的区别
    堆和栈的区别
    getch和getchar的区别
    class和struct
    ARM开发步骤
    ARM寻址方式
    存储器映射
    思维中的错误
  • 原文地址:https://www.cnblogs.com/bobo1/p/12652898.html
Copyright © 2011-2022 走看看