首页 > 其他分享 >开发问题记录

开发问题记录

时间:2023-03-23 19:48:40浏览次数:34  
标签:变量 记录 watch 问题 开发 props 组件 data dataLoaded

开发问题记录

1.Vue父子组件传值延迟如何解决?

问题描述:父组件中有一个通过异步的方式请求获取的数组,通过props传给子组件渲染页面,子组件页面空白。

原因分析:由于父组件通过异步请求获取数据后,才传递到子组件,导致子组件在渲染时出现延迟。

解决方法:

1.在父组件里使用v-if,等数据获取成功后再渲染子组件,如下所示:

<!-- 父组件 -->
<template>
  <div>
    <div v-if="dataLoaded">
      <child-component :data="data"></child-component>
    </div>
    <div v-else>
      数据加载中...
    </div>
  </div>
</template>

<script>
import childComponent from './childComponent.vue'

export default {
  components: {
    childComponent
  },
  data() {
    return {
      data: null, // 存储请求到的数据
      dataLoaded: false, // 根据此变量来控制是否显示子组件
    }
  },
  mounted() {
    this.fetchData()
  },
  methods: {
    async fetchData() {
      const result = await getDataFromApi() // 调用异步接口请求数据
      this.data = result
      this.dataLoaded = true // 通过此变量控制是否显示子组件
    }
  }
}
</script>

2.在子组件内部使用watch监听传入的props变量,当变量改变时,再进行相应的操作,如下所示:

<!-- 子组件 -->
<template>
  <div>
    <div v-if="dataLoaded">
      显示数据{{data}}
    </div>
    <div v-else>
      数据加载中...
    </div>
  </div>
</template>

<script>
export default {
  props: {
    data: {
      type: Array,
      default: null
    }
  },
  data() {
    return {
      dataLoaded: false // 用于判断props.data是否已经加载
    }
  },
  watch: {
    data() {
      this.dataLoaded = true // 当props.data改变时,触发watch方法,更新dataLoaded变量
    }
  }
}
</script>

标签:变量,记录,watch,问题,开发,props,组件,data,dataLoaded
From: https://www.cnblogs.com/ibacca/p/17248624.html

相关文章

  • 关于word的行距导致图片显示不全的问题
       这里我其实是插入了图片但是现实不出来,或者只能显示一点点。原因:段落行距为固定值,改为单倍行距or其他行距即可 改为单倍行距后,图片可以现实完结撒花!!! ......
  • 树上问题整理
    简单二叉树1.首先是树的遍历问题:树的先序中序后序遍历主要就是中序决定了这颗树长什么样,中序找根分为左右子树,然后再不断去查找!!!这个点挺重要的。如果是知道前序......
  • linux系统docker容器部署项目字体问题-Graphics2D在容器里面不显示字
    继上一个博客中生成签章图片后,今日遇到一个问题,本地不管如何改代码,都会将签名文字显示出来。但是...........一旦部署在linux系统后,一直打印不出来,,纠结的呀。。完全......
  • 通过使用chatgpt 逐步解决egg项目学习的一些问题【笔记】
    我的需求提问创建一个html页面,这个页面包括通过学生id查询学生详情的组件,和通过学生姓名,身份证,选择班级的组件,并把代码告诉我chatgpt回答好的,以下是一个包含两个组件的......
  • 学习记录-JAVA正则表达式
    正则表达式java匹配方法s.matches("JAVA");s.equals("JAVA");来询问该字符串是否匹配表达式正则表达式语法整行字符加上/表示为正则表达式/123/以下所有均省略//......
  • JPA使用in查询构建sql参数问题
    JPA使用in查询构建sql参数问题https://blog.csdn.net/b308175181/article/details/100744622jpa自己构建的sql语句,如要使用in,传参必须用List数组,会自动转化。拼接的Stri......
  • 接口测试平台 pity 搭建记录
    官方文档:https://wuranxu.github.io/pityDoc/Github:https://github.com/wuranxu/pity在线体验:http://121.5.2.74:8006/项目下载到本地,安装python依赖包。启动数据......
  • Android开发-Android UI与布局详解
    1.UIUI - UserInterface - 用户界面 - 系统与用户信息交换的媒介软件设计=编码设计+UI设计AndroidUI=布局+控件2.布局layoutView:微件。用户......
  • 怎么解决小数运算的精度问题?
     1.将数字转成整数这是最容易想到的方法,也相对简单functionadd(num1,num2){constnum1Digits=(num1.toString().split('.')[1]||'').length;constnum2Di......
  • 个人常用sql记录
            CDATA区间使用 IF使用  CaseWhenThen的使用 ......