work-note(10):父子传值时,父组件不会自动更新(刷新)展示出子组件,子组件创建成功,但是需要手动刷新才能展示子组件

news/2024/7/10 3:02:15 标签: javascript, js, vue

时间:2022-05-15

文章目录

    • 问题描述
    • 问题分析
  • 解决方式
    • 1、首先确定传入的值
    • 2、监听这个传入的值(重点)
      • 监听写法:
      • 整体代码:
    • 附加

问题描述

刚刚开始做项目,没有多少工作经验,好不容易查做了父子组件传值。却发现子组件不能自动更新出来。

需要手动刷新浏览器才能展示出来;

问题分析

(1)其实主要是,当数据从父组件传入到子组件之后,子组件内没有进行数据监听;

(2)当在父组件内进行创建数据时,子组件没有渲染出来;(类似于表格数据创建,但是创建的数据没有渲染出来);
	【当然保证在,不是因为后台限制的情况下】

解决方式

1、首先确定传入的值

(1)首先在 props (父 =》子)传入的值为 value;

(2)类型: type 传入值的类型;

(3)是否必须传入:required  在使用子组件时,是否一定要传入这个值;
javascript">props: {
   value: {
     likes: "object",
     type: Object,
     required: true,
   },
 },

2、监听这个传入的值(重点)

(1)写在 watch 里面;

(2)这个【监听函数名称】要和【传入值名称】相同;

(3)subValue 是需要 return 出去,此时父组件就可以自动渲染子组件了;

(4)immediate: true,   就是首次进行添加使用子组件时,就直接触发(重点:大多数是这个原因);

监听写法:

javascript"> watch: {
   immediate: true,
   value() {
     this.subValue = this.value;
   },
 },

整体代码:

javascript"><script>
export default {
  name: "SonComponents",
  data() {
    return {
      subValue: {},		// 2、return 返回 subValue 出去 
    };
  },
  props: {
    value: {
      likes: "object",
      type: Object,
      required: true,
    },
  },
  watch: {
    immediate: true,
    value() {
      this.subValue = this.value;	// 1、监听父组件传入值 value 
    },
  },
};
</script>

附加

这是我之前找到的父子传值使用,写的文章;

父子传值 props emits


http://www.niftyadmin.cn/n/1410339.html

相关文章

work-notes(11):从父组件传入到子组件的值存在有多种类型时怎么写,怎么写传入值才正确?

时间&#xff1a;2022-05-15 文章目录问题描述正确写法重点问题描述 &#xff08;1&#xff09;当父组件传到 子组件的值&#xff0c;有多个的时候时怎么写才正确&#xff1f;好比说&#xff0c;我给一个子组件盒子&#xff0c;我传入的值可能是一个数字&#xff08;Number&am…

work-notes(12):如何二次封装 Element UI 的 dialog 弹窗,发现弹窗只能点击触发一次是什么原因,如何解决弹窗只能触发一次的问题?

时间&#xff1a;2022-05-15 文章目录问题描述问题分析1、如何二次封装 element UI 的 dialog 弹窗&#xff1f;2、实现过程&#xff08;1&#xff09;在 script 标签 中 props 传入值&#xff08;2&#xff09;绑定到 dialog 标签内主要结构&#xff1a;个人例子&#xff1a;解…

work-notes(13):如何去掉 el-select 的边框?为什么border:none; 去不掉el-select 的边框?去掉 bo-shadow

时间&#xff1a;2022-05-23 文章目录问题描述解决办法用法1、全局写法2、局部写法问题描述 前些天一个功能需要用到 el-select&#xff0c;但是不用透明的边框&#xff1b;给了 border:none; 却不生效&#xff1b;大概是这样&#xff1a;解决办法 1、首先要去掉 border&…

work-notes(14):路由跳转如何传值,VUE3.0 路由如何携带参数传值?

时间&#xff1a;2022-05-23 文章目录问题描述解决思路路由跳转如何携带参数&#xff08;1&#xff09;VUE2.0 方式1、router-link 方式2、this.$router.push() 方式3、获取参数方式&#xff08;2&#xff09;VUE3.0 方式解析1&#xff09;引入路由2&#xff09;使用3&#xff…

work-notes(15):私服报错401,Sonatype Nexus Repository Manager,may not contain non-url-safe chars如何解决?

时间&#xff1a;2022-05-30 文章目录问题描述回归重点&#xff0c;code 401 认证失败问题如何解决1、找到node本地文件 .npmrc2、删除里面的地址和 token3、重新登录4、总结问题描述 报错&#xff1a; code 401 npm ERR! Unable to authenticate, need: BASIC realm"Son…

work-notes(16):elementUI 的时间选择器如何添加选择时间格式,例如选择今天起往后7、15、30天

时间&#xff1a;2022-06-15 文章目录问题描述如何解决1、首先去 elementUI 复制他们的组件2、时间格式获取注意&#xff1a;问题描述 需求大致如下&#xff1a;可根据点击左侧的时间&#xff0c;把时间带入 今天起 至 往后的多少天&#xff1b;如何解决 1、首先去 elementUI…

work-notes(17):vue2 表格 prop 数据绑定的是一个动态添加的值,发现刷新时出不来,但是表格点击其他页面或表格大小变化的时候就能出来

时间&#xff1a;2022-06-16 文章目录问题描述图文描述&#xff1a;原因解析解决办法1、把给原本 .属性 方式改成 vue.set()解释实现效果问题描述 今天做一个功能&#xff0c;就是把数据渲染到表格上&#xff0c;但是发现有问题&#xff0c;直接刷新的时候出不来&#xff0c;但…

work-notes(18):npm run build 报错 文件名、目录名或卷标语法不正确 yarn问题?

时间&#xff1a;2022-06-24 文章目录问题描述问题截图问题解决我发现重点&#xff1a;结果问题描述 前两天项目打包的时候还是正常的&#xff08;用 npm run build&#xff09;&#xff1b; 今天突然就不行了&#xff0c;我很好奇&#xff1b;网上查了很多&#xff0c;说什么…