| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> react中组件复用时遇到的变量互相影响的bug -> 正文阅读 |
|
[JavaScript知识库]react中组件复用时遇到的变量互相影响的bug |
假如有这样的需求: 一个父组件 循环出4个子组件。? 每一个子组件有初始变量比较复杂 这里用inputVal模拟该情况?并且不需要该变量(inputVal)实时响应式更新,因此我们没有把他设置成状态(没有使用useState) 然后需要我们在组件挂载时候将inputVal的值赋值给input输入框 当我们改变input输入框的时候会改变inputVal变量的值(从dom到数据的单项绑定) 然后我们获取当前C组件的inputVal值 ? ?代码如下
开始我们获取到各个组件的inputVal值都是10 没有问题 ? 然后我们对第一个组件的输入框修改 变成104 获得组件1的inputVal值是104 没问题 ? 注意 ?此时 我们点击剩余的3个组件的按钮获取剩余3个组件的值的时候 均显示104 ? ?这时候相当于inputVal这个变量被泄露出去了 导致组件间本应该互相隔离的变量被相互影响了 所以我们需要对变量声明放在函数内 防止变量泄露
?由于函数作用域的性质 变量会互相隔离 不会被影响 总结: 出于安全和代码可维护性考虑 函数组件外部最好不要定义任何'变量'(这里指的是let和var定义 并且后续会修改改变量), 只应该使用 import导入 或者const定义常量 |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 5:47:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |