码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Vue2系列 — 修饰符.sync


    .sync 修饰符以前存在于 Vue1.0 版本里,后来在2.0版本中移除了 .sync 修饰符。
    但是在 2.0 发布之后的实际应用中,发现 .sync 还是有其适用之处,比如在开发可复用的组件库时。我们需要做的只是让子组件改变父组件状态的代码更容易被区分。
    从 2.3.0 起重新引入了 .sync 修饰符,但是这次它只是作为一个编译时的语法糖存在。它会被扩展为一个自动更新父组件属性的 v-on 监听器。

    1 使用情景

    需要父组件给子组件传值
    子组件通过 emit 改变该值

    2 原写法:

    v-bind 传值 money 给子组件
    并绑定事件 update:money 改变 money 值

    父组件:
    <template>
      <div class="app">
        <Child
          v-bind:money="total" 
          v-on:update:money="money = $event"
        />
      </div>
    </template>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    子组件:
    <template>
      <div class="child">
        {{ money }}
        <button @click="$emit('update:money', money - 100)">
        </button>
      </div>
    </template>
    
    <script>
    export default {
      props: ["money"],
    };
    </script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    3 为了方便起见,为这种模式提供一个缩写,即 .sync 修饰符:

    示例:https://codesandbox.io/s/white-glade-xhj86?file=/src/App.vue

    父组件:
    <template>
      <div class="app">
        <Child v-bind:money.sync="total" />
        
      div>
    template>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4 需要注意的是

    • 带有 .sync 修饰符的 v-bind 不能和表达式一起使用 (例如 v-bind:title.sync=”doc.title +
      ‘!’” 是无效的)。取而代之的是,你只能提供你想要绑定的 property 名,类似 v-model。
    • 当我们用一个对象同时设置多个 prop 的时候,也可以将这个 .sync 修饰符和 v-bind 配合使用:
    <text-document v-bind.sync="doc">text-document>
    
    • 1

    这样会把 doc 对象中的每一个 property (如 title) 都作为一个独立的 prop 传进去,然后各自添加用于更新的 v-on 监听器。

    • 将 v-bind.sync 用在一个字面量的对象上,例如 v-bind.sync=”{ title: doc.title }”,是无法正常工作的,因为在解析一个像这样的复杂表达式的时候,有很多边缘情况需要考虑。
  • 相关阅读:
    Could not load dynamic library ‘libcudart.so.11.0‘; dlerror: libcudart.so.11.0:
    c++的类和对象(中):默认成员函数与运算符重载(重难点!!)
    Layui快速入门之第七节 表格
    [大话设计模式C++版] 第18章 如果再回到从前 —— 备忘录模式
    1. MAC 安装 goland 和 go
    Codeforces Global Round 23 E CF1746E Joking (Hard Version)
    AI Agent框架(LLM Agent):LLM驱动的智能体如何引领行业变革,应用探索与未来展望
    Windows系统中的环境变量asl.log是什么
    二、GRE(Generic Routing Encapsulation,通用路由封装协议)
    10_9C++
  • 原文地址:https://blog.csdn.net/weixin_52268321/article/details/134541502
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号