在使用RN动画的时候,看到这样的代码:

const App = () => {
const fadeAnim = useRef(new Animated.Value(0)).current;
// ...
return (
<View style={styles.container}>
<Animated.View
style={[
styles.fadingContainer,
{
opacity: fadeAnim // Bind opacity to animated value
}
]}
>
// ...
</Animated.View>
// ...
</View>
);
}

诶,useRef不应该是用在获取子组件实例的吗,这里这个用法是什么意思。

在搜索文章的时候看到了这样一段话:

useRef的作用:

  1. useRef 用来获取DOM元素对象
  2. 保存数据

useRef还可以用来保存数据?于是我就继续到react文档上查了一下,看到了这样一段话:

然而,useRef()ref 属性更有用。它可以很方便地保存任何可变值,其类似于在 class 中使用实例字段的方式。

原来是这样,由于之前使用vue的时候,ref就是指的组件实例,因此到react的时候还是想当然地认为useRef只能用来获取组件实例。

知道了了useRef之后,同时解决了我之前的一个疑惑,那就是在从class组件转到函数式组件时,如何在函数式组件中声明实例变量。如果是使用var、let、const声明变量的话,产生的是函数的局部变量,当组件重渲染后,后一次访问的同名局部变量已经不再是前一个同名的局部变量了。那有了useRef后,就可以轻松地解决这个问题。

最新文章

  1. Python学习笔记(五)&mdash;&mdash;list和tuple
  2. 夺命雷公狗-----React---21--小案例之心情留言板
  3. java中的泛型和sql中的索引
  4. 前端mac下的工具
  5. mac下的一些常识
  6. 【收藏】win7打开word每次提示配置解决办法
  7. duplicate symbol _OBJC_METACLASS_$ 报错记录
  8. 一个考察for循环题 讨论一下
  9. 拼音操作工具类 - PinyinUtil.java
  10. M-矩阵
  11. eclipse加入git工具
  12. park、unpark、ord 函数使用方法(转)
  13. CxImage整理(叠加字符/图像合并)
  14. ListFragment和ListActivity的setOnItemClickListener不起作用
  15. Linux内核-系统调用
  16. kubernetes1.4 基础篇:Learn Kubernetes 1.4 by 6 steps
  17. java web开发 高并发处理
  18. 201621123043 《Java程序设计》第9周学习总结
  19. MySQL-基本命令
  20. 非root用户在80端口运行nginx

热门文章

  1. TabControl控件的简单使用-添加tab
  2. List排序(降序)
  3. 基于.NetCore开发博客项目 StarBlog - (24) 统一接口数据返回格式
  4. Python实验报告(第10章)
  5. [深度学习] tf.keras入门1-基本函数介绍
  6. [编程基础] C++多线程入门2-连接和分离线程
  7. 1_ES6中拓展运算符的使用
  8. Educational Codeforces Round 141 解题报告
  9. 使用vue创建一个吸顶的菜单项--简单版
  10. angular8实现前端携带cookie发送给后端+nodejs获取前端发送的cookie