我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用props传值时无法在mounted处理的解决方案

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用props传值时无法在mounted处理的解决方案

props传值无法在mounted处理的解决

遇到的问题

父组件传值,在子组件中不能用mounted处理

export default{
    props:['floor1'],
    data(){
        return {
            floor1_0:'',
            floor1_1:'',
            floor1_2:'',
        }
    },
    mounted(){
        console.log(this.floor1)             //打印出的不是所传的值
        this.floor1_0 = this.floor1[0];      
    }
}

因为props为异步传值(就是在父组件没有加载完数据时,floor1就传递到了子组件,此时floor1还没被附上值,先执行了子组件的mounted),而mounted执行一次后无法改变floor1的值。

解决

使用侦听器watch,当floor1改变时,重新计算

watch:{
    floor1:function(val){
        this.floor1_0 = val[0];
        this.floor1_1 = val[1];
    }
}

vue笔记(props和mounted)

1.mounted

1.1mounted中使用$nextTick会导致页面挂掉

mounted() {
// 页面卡死
    this.$nextTick(() => {
      this.setUrl()
    })
  }

2.props

2.1props传过去的值,第一时间在mounted是获取不到的。因为是异步传值的。

解决方法:

(1)使用watch

(2)将需要进行的处理在父组件进行操作,然后将操作完的值直接传给子组件。

watch: {
   datas: function (val) {
      
    }
  }
或
(父)
 <examAchSearchHeader :exprotUrl="exprotUrl"></examAchSearchHeader>
 ...
this.exportUrl = XXXX
(子)
props: {
    exportUrl: String
}

2.2通过props传给子组件的值变化后子组件接收到 和 通过refs访问子组件方法中使用接收到的参数变化的顺序问题

通过refs访问时,接收到的参数是变化前的参数。还是因为异步的问题。可以强制赋值改变,或用watch等。

 // parent
 <examAchTable ref="achTable" :dataList="examAchList"></examAchTable>
 
 // 若这里不强制赋值一下,在examAchList变化后直接调用子组件的transData方法时,子组件dataList仍是变化前的值
 this.$refs.achTable.dataList = this.examAchList
 this.$refs.achTable.transData(res.data.totalRecord)
 
 // child
 transData(total) {
      if (this.dataList) 
    // ...
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用props传值时无法在mounted处理的解决方案

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

使用props传值时无法在mounted处理怎么解决

这篇文章主要介绍了使用props传值时无法在mounted处理怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇使用props传值时无法在mounted处理怎么解决文章都会有所收获,下面我们一起来看看吧。p
2023-06-30

阿里云的IP组建代理池在苹果手机上无法使用的原因及解决方法

在使用阿里云的IP组建代理池时,如果苹果手机无法使用,可能是因为以下几个原因:苹果手机的网络设置、系统版本、防火墙设置、网络环境等。本篇文章将针对这些原因,给出相应的解决方法。正文:一、苹果手机网络设置问题苹果手机的网络设置问题可能是造成无法使用阿里云IP组建代理池的主要原因。具体来说,可能是网络设置中未开启代理
阿里云的IP组建代理池在苹果手机上无法使用的原因及解决方法
2023-11-18

win7下使用PS处理图片时出现图片打不开问题的解决方法

win7纯净版系统用户经常使用PhotoShop软件对图片进行处理,但是在处理图片的过程中经常遇到图片打不开的情况,使用Windows画图工具都可以正常打开图片的,图片都是从网上下载下来的。遇到这样情况该怎么办呢?下面小编给大家介绍详细的解
2023-05-21

Mac退出移动硬盘时显示“磁盘无法推出,因为一个或多个程序正在使用它”解决方案

解决方法 1. 重启访达2. 重启电脑3. 终端命令行方法4. ```df -lh```不显示移动磁盘名称时的解决方法 1. 重启访达 按住option键,在底部程序坞的访达图标右键,选择重新启动。此时访达app会重启,之后尝试
2023-08-17

编程热搜

目录