首页 > 其他分享 >vue2子组件切换,监听方法失效(监听多个字段)

vue2子组件切换,监听方法失效(监听多个字段)

时间:2023-05-24 11:11:59浏览次数:38  
标签:console newVal oldVal vue2 组件 true 监听

记录下问题

本来是在父页面上放了多个子组件,利用单选按钮控制每个组件,选择了某个按钮,设置该组件控制字段为true,例如v-if="component"来控制销毁创建,根据component=true或者flase来控制子组件创建或者销毁

后来发现子组件切换时,监听不生效,监听方法也加了immediate=true,当几个按钮用的是同一个组件时,第二次还选择该组件,才会触发监听方法

经排查是监听多个字段的方法写的有问题

原来写的是

watch: {
            componentStr:
                function (newVal, oldVal) {
                    this.componentDictType = newVal;
                    console.log("newComponentDictType:" + newVal + ",oldComponentDictType:" + oldVal);
                    if (newVal != null) {
                        this.getTypeList(newVal);
                    }
                },
            componentHeader:
                function (newVal, oldVal) {
                    this.componentHeaderString = newVal;
                    console.log("newcomponentHeaderString:" + newVal + ",oldcomponentHeaderString:" + oldVal);
                    if (newVal != "") {
                        this.setHeaderString(newVal);
                    }
                },
           immediate: true
}

这种写法是错误的,改成了

watch: {
            componentStr: {
                handler: function (newVal, oldVal) {
                    this.componentDictType = newVal;
                    console.log("newComponentDictType:" + newVal + ",oldComponentDictType:" + oldVal);
                    if (newVal != null) {
                        this.getTypeList(newVal);
                    } 
                },
                immediate:true
            },
            componentHeader: {
                handler:function(newVal, oldVal) {
                    this.componentHeaderString = newVal;
                    console.log("newcomponentHeaderString:" + newVal + ",oldcomponentHeaderString:" + oldVal);
                    if (newVal != "") {
                        this.setHeaderString(newVal);
                    }
                },
                immediate:true
            }
}

 

标签:console,newVal,oldVal,vue2,组件,true,监听
From: https://www.cnblogs.com/DDDKC/p/17427420.html

相关文章

  • sentinel(阿里巴巴开源的一款微服务流量控制组件)
    sentinel:分布式系统的流量防卫兵:以流量为切入点,从流量控制、熔断降级、系统负载均衡保护等多个维度保护服务的稳定性sentinel分为两部分:核心库:不依赖任何框架/库,可以运行在所有的java环境,且对Dubbo/springcloud等框架也有较好支持控制台:基于springboot开发,打包后可以直接运......
  • element-plus 组件样式修改
    el-form-item间距.el-form-item{margin-bottom:3px;}Elmessage消息换行/*失败消息*/.el-message--error{white-space:pre-line}/*成功消息*/.el-message--success{white-space:pre-line}......
  • 我的第一个项目(十三) :组件间传值的一些方案(vuex,eventbus,localStorage)
    好家伙, 先说一下我的需求,我要组件间传值 1.eventBus前端兄弟组件传值eventbus无法使用不报错也不触发,就很奇怪//eventBus.jsimportVuefrom"vue";exportdefaultnewVue();//Mylogin.vue<buttontype="button"class="btnbtn-primary"@click="login&quo......
  • vue3.0组件封装
    组件全局祖册1.建立公共文件夹my-ui2.index.js文件导出全局祖册组件的install方法3.main.js中impotindex.js导入install方法使用并useimportmyUifrom'./components/my-ui'createApp(App).use(myUi).mount('#app')......
  • Vue2 到 Vue3 升级插件gogocode-plugin-vue
    配合gogocode-cli使用开始迁移​Vue3的到来为我们带来了许多惊喜的变化,但是由于Vue3对于Vue2在Api层面存在诸多兼容问题,并不能做到平滑升级。所以我们根据v3迁移指南利用gogocode这个代码转换利器,利用它操作AST,开发了一套Vue2升级工具。利用这套工具能够快速地把你的Vue2代码升......
  • Kubernetes 控制平面组件:etcd
    Kubernetes控制平面组件:etcd¶etcd¶Etcd是CoreOS基于Raft开发的分布式key-value存储,可用于服务发现、共享配置以及一致性保障(如数据库选主、分布式锁等)。在分布式系统中,如何管理节点间的状态一直是一个难题,etcd像是专门为集群环境的服务发现和注册而设计,它提供了数据TTL失......
  • linux 离线安装yum组件
    以Centos7.x为例。执行如下命令查看是否有安装yum,若返回为空,则表示没安装rpm-qa|grepyum解决方法1:(适合Centos7.x)1、下载阿里云的yum安装包安装:wgethttps://mirrors.aliyun.com/centos-vault/7.4.1708/os/x86_64/Packages/yum-3.4.3-154.el7.centos.noarch.rpmwget......
  • Vue 单组件入门
    Vue基础入门一、Vue脚手架1.简介Vue的脚手架(VueCLI:CommandLineInterface)是Vue官方提供的标准化开发平台。它可以将我们.vue的代码进行编译生成htmlcssjs代码,并且可以将这些代码自动发布到它自带的服务器上,为我们Vue的开发提供了一条龙服务。脚手架官网地址:ht......
  • 通过 命令 DISM /Online /Get-Features 将显示在您的系统上安装的所有Windows功能列
    DISM/Online/Enable-Feature/FeatureName:<组件名称>/Allecho组件已成功启用!pause其中,<组件名称>是您要启用的组件的名称。可以在WindowsServer2022上使用以下命令列出可用组件:DISM/Online/Get-Features运行上面的命令后,将显示在您的系统上安装的所有Windows功能列表......
  • ExtJS 4 Grid组件
    我们正在努力为ExtJS4做准备,到目前为止,我们已经发布了3个开发者预览版,我们的目标是争取在4到6周内或争取更快的时间内发布最终版本。在最近的开发者预览版,我们首次发布了新的Grid组件。新的grid已经重写,而且比3.x版本的有更多功能。新的grid不但大幅提高了性能,而且更加灵活,因此......