vue通过sync标识符 在子组件中更便捷的修改父组件的值

news2024/11/22 16:46:35

这里 我们创了一个vue2 项目
根组件 App.vue参考代码如下

<template>
    <div>
        <span>{{ name }}</span>
        <text-data :name = "name" />
    </div>
</template>

<script>
import textData from "@/components/textData";
export default {
    components: {
        textData
    },
    data() {
        return {
            name: "小猫猫"
        }
    }
}
</script>

<style scoped>
</style>

要在src下的components中创建一个textData.vue组件
参考代码如下

<template>
    <div>
        <span>{{ name }}</span>
        <button>改名</button>
    </div>
</template>

<script>
export default {
    props:{
        name: {
            type: String,
            default: ""
        }
    }
}
</script>

<style scoped>

</style>

项目先运行起来
在这里插入图片描述
App.vue套用了textData组件 然后 传给了 textData组件一个name变量 值为小猫猫 那么 我们这时要实现一个需求
在textData中点击改名 改变父组件name 的值为大猫猫

我们先尝试最简单直接的写法
textData.vue代码修改如下

<template>
    <div>
        <span>{{ name }}</span>
        <button @click = "setName">改名</button>
    </div>
</template>

<script>
export default {
    props:{
        name: {
            type: String,
            default: ""
        }
    },
    methods: {
        setName(){
            this.name = "大猫猫";
        }
    }
}
</script>

<style scoped>

</style>

如果你没有关闭语法检查 就会这样
在这里插入图片描述
关掉语法检查 项目就可以跑起来 但点击时 依旧会报错
在这里插入图片描述
因为vue是不支持子组件直接这样去修改父组件的值的

大家可能都会想到 在父组件中定义一个函数 用接到的参数修改当前name 然后子组件取调用父组件的函数
这是父子传值最常见的 就不说了

我们这次的方法会更方便一些
利用sync标识符

App.vue中的template部分改成这样

<template>
    <div>
        <span>{{ name }}</span>
        <text-data :name.sync = "name" />
    </div>
</template>

简单说 将传参后面 建一个 .sync声明一下
然后textData.vue代码更改如下

<template>
    <div>
        <span>{{ name }}</span>
        <button @click = "setName">改名</button>
    </div>
</template>

<script>
export default {
    props:{
        name: {
            type: String,
            default: ""
        }
    },
    methods: {
        setName(){
            this.$emit('update:name', '大猫猫')
        }
    }
}
</script>

<style scoped>

</style>

这次项目正常启动
点击改名
在这里插入图片描述
sync 声明父组件传值 子组件通过this.$emit(‘update:变量名’, 最终值)
就可以修改
也是非常的简单

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/531646.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python网络爬虫笔记20:批量下载图片并将其转换为pdf文档

对于有些网页,你可以预览所有的页面内容,并且也可以通过F12获取到页面的URL,但是面对动辄几十页的图片,手动下载显然是不可行的。 在这里我们给出一个人机交互的通用解决策略。 第一步:使用F12获取页面所有感兴趣图片的URL 这一步看似简单,其实也暗藏玄机。因为有些网…

Java的继承与组合

继承可以帮助实现类的复用。 所以&#xff0c;很多开发人员在要复用代码时会自然的使用类的继承的方式。 但是&#xff0c;遇到想要复用的场景就直接使用继承&#xff0c;这样做是不对的。长期大量的使用继承会给代码带来很高的维护成本。 本文将介绍一种可以帮助复用的新的…

速锐得解码奔驰Actros 系列网关CAN总线应用车载互联微系统

近年来&#xff0c;改变信号处理方式的低成本高速电子电路和制造技术的进步推动了传感技术的发展。借助这些协同领域内的新发展&#xff0c;传感器和制造商可以采用一套全新的方法&#xff0c;如远程自监控和自校准系统智能化&#xff0c;来提高产品的性能。 类似的&#xff0c…

数据结构与算法lab1-哈工大

title: 数据结构lab1-一元多项式的代数运算 date: 2023-05-16 11:42:26 tags: 数据结构与算法 git地址&#xff1a;https://github.com/944613709/HIT-Data-Structures-and-Algorithms 哈尔滨工业大学计算机科学与技术学院 实验报告 课程名称&#xff1a;数据结构与算法 课…

探索iOS之AudioUnit音效框架

iOS的AVAudioUnit提供的音效包括&#xff1a;混响、延迟、均衡器、失真、变速、变调等。按照类型划分为Audio Effect和Time Effect&#xff0c;其中Audio Effect包括混响、延迟、均衡器和失真&#xff0c;而Time Effect主要是变速、变调。 一、音效应用层框架 音效的应用层框…

Kali-linux使用Metasploit基础

Metasploit是一款开源的安全漏洞检测工具。它可以帮助用户识别安全问题&#xff0c;验证漏洞的缓解措施&#xff0c;并对某些软件进行安全性评估&#xff0c;提供真正的安全风险情报。当用户第一次接触Metasploit渗透测试框架软件&#xff08;MSF&#xff09;时&#xff0c;可能…

限速神器RateLimiter源码解析 | 京东云技术团队

作者&#xff1a;京东科技 李玉亮 目录指引 限流场景 软件系统中一般有两种场景会用到限流&#xff1a; •场景一、高并发的用户端场景。 尤其是C端系统&#xff0c;经常面对海量用户请求&#xff0c;如不做限流&#xff0c;遇到瞬间高并发的场景&#xff0c;则可能压垮系统…

优秀的产品经理需要具备的能力和素质

1. 适应性强。市场不断发展&#xff0c;用户的需求也在不断变化。如果产品不能满足需求&#xff0c;那就改变路线&#xff1b;如果会议不再有效&#xff0c;取消它&#xff1b;如果你需要更多的帮助&#xff0c;尽管开口。了解沉没成本&#xff0c;并采取措施使产品朝着正确的方…

Nature Neuroscience:焦虑为何导致“社恐”?李晓明团队揭示相关脑机制

焦虑是一种常见的负面情绪&#xff0c;也是当今社会的一个热词。在刚刚落幕的《脱口秀大会第五季》中&#xff0c;鸟鸟以一句“躺的时候想卷&#xff0c;卷的时候想躺&#xff0c;永远年轻&#xff0c;永远左右为难&#xff0c;一切都是最不好的安排。”戳中了无数观众的“焦”…

服务器架构-架构图(三)

前言 项目不同&#xff0c;架构自然也不同&#xff0c;所以没有唯一的架构&#xff0c;只有合适项目的架构。 这章以休闲类手游为例。 1&#xff1a;架构图 2张差别&#xff0c;就是中间件 用中间件 主要 异步化提升性能、降低耦合度、流量削峰 根据需求选择一种服务器间的消息…

Sui NFT应用实例:将NFT变成咖啡!

近期在台北智慧城市峰会和博览会中&#xff0c;展示了使用NFT购买咖啡的系统。 在2023年3月28–31日举行的台北智慧城市峰会和博览会中&#xff0c;参与者向大家演示了如何使用NFT兑换一杯香醇的咖啡。此系统由Sui基金会、MomentX以及Suia共同创建&#xff0c;演示了如何使用在…

【牛客网面试必刷TOP101】链表篇(一)

【牛客网面试必刷TOP101】链表篇&#xff08;一&#xff09; 前言刷题网站刷题&#xff01;BM1 反转链表思路一&#xff1a;用栈解决思路二&#xff1a;双链表求解思路三&#xff1a;递归解决 总结 BM2 链表内指定区间反转思路一&#xff1a;头插法迭代思路二&#xff1a;递归 …

几乎涵盖微服务所有操作,阿里2023最新SpringCloudAlibaba实战进阶笔记太强了

近两年&#xff0c;“大厂裁员”总是凭实力冲上各大媒体头条&#xff0c;身在局中的我们早已习以为常。国内的京东&#xff0c;阿里&#xff0c;腾讯&#xff0c;字节&#xff0c;快手&#xff0c;小米等互联网公司都以不同程度的裁员比例向社会输送人才。大量有大厂经验的卷王…

常用性能指标、性能指标评估及性能测试通过标准

一、常用性能指标 1、并发用户数&#xff1a; 指同一时间点对系统进行操作的用户数。准确说为"同时向服务器发送服务请求,给服务器产生压力的用户数量" 并发用户数和注册用户数、在线用户数的概念不同&#xff1a; 并发用户数一定会对服务器产生压力的&#xff0…

Mac FortiClient VPN一直连接不上?正确的安装步骤来了!

Mac FortiClient完整版安装 1、下载FortiClient 这里使用FortiClient 7.0.7的版本。登录fortiClient 7.x 网站下载FortiClient_7.0.7.0245_macosx.dmg。 2、当然要是不想注册&#xff0c;也可以点击这里&#xff01; 3、或者安装我这里的固定版本【百度网盘】提取码&#xff…

极狐GitLab as Code,全面升级你的 GitOps 体验

&#x1f4a1; 近日&#xff0c;由微软和英特尔联合发起的第二届开源云原生开发者日&#xff08;Open Source Cloud Native Developer Day&#xff09;上海站顺利落幕。极狐(GitLab) 资深云原生架构师郭旭东在会上进行了《深度探索 GitOps 平台的更多可能》主题演讲&#xff0c…

关于wxapkg路径的一些问题

1 下载安装夜神模拟器。 官网地址&#xff1a;https://www.yeshen.com在模拟器中安装微信&#xff0c;可以下载apk后拖进去&#xff0c;也可在里面下载。不需要RE文件管理器&#xff0c;目前夜神自带Amaze文件管理器&#xff0c;一样的。路径地址为&#xff1a; /data/data/c…

Ubuntu16.04布置CenterFusion记录

安装细节 CenterFusion/src/tools/convert_nuScenes.py内容修改 如果你用的是nuscenes数据集中的Mini部分&#xff0c;那就把convert_nuScenes.py第27行内容中的其他部分注释掉 convert_nuScenes.py在56行处&#xff0c;将数量修改为3 nuscenes-devkit下载 将nuscenes-dev…

计算机网络实验(ensp)-实验1:初识eNSP仿真软件

目录 实验报告&#xff1a; 实验操作 1.建立网络拓扑图并开启设备 2.配置路由器 1.输入命名&#xff1a;sys 从用户视图切换到系统视图 2.输入命名&#xff1a;sysname 姓名 修改路由器名字 3.输入命名&#xff1a;interface g0/0/0 进入端口视图g0…

开源同城跑腿系统(PHP版)

同城跑腿系统的优点在于&#xff0c;它可以为用户提供方便快捷的服务&#xff0c;避免了用户自己跑腿的麻烦和时间成本&#xff0c;同时也为跑腿人员提供了一种灵活的兼职方式 此系统是一款基于likeadmin-php开发的跑腿小程序系统&#xff0c;提供全部前后台无加密源代码&…