React新生命周期之getSnapshotBeforeUpdate使用场景

<!DOCTYPE html>

<html>

<head>

    <meat charset="UTF-8">

        <title>getSnapshotBeforeUpdate使用场景</title>

        <style>

            .list {

                width: 200px;

                height: 150px;

                background-color: skyblue;

                overflow: auto;

            }

       

            .news {

                height: 30px;

            }

        </style>

</head>

<body>

    <!-- 准备好一个容器 -->

    <div id="test"></div>

    <!-- 核心库 -->

    <script type="text/javascript" src="../js/react.development.js"></script>

    <!-- react-dom,操作dom -->

    <script type="text/javascript" src="../js/react-dom.development.js"></script>

    <!-- 引入babel,jsx转为js -->

    <script type="text/javascript" src="../js/babel.min.js"></script>

    <!-- 此处一定要写babel -->

    <script type="text/babel">

        //1.创建组件

        class NewsList extends React.Component{

            state = {newsArr:[]}

            componentDidMount(){

                setInterval(() => {

                    //获取原状态

                    const {newsArr} =this.state

                    //模拟一条新闻

                    const news = '新闻'+(newsArr.length+1) //从1开始

                    //更新状态

                    this.setState({newsArr:[news,...newsArr]})

                },1000);

            }

           getSnapshotBeforeUpdate(){

               return this.refs.list.scrollHeight

           }

           componentDidUpdate(preProps,preState,height){

               this.refs.list.scrollTop += this.refs.list.scrollHeight - height //refs指ref="list"

           }

           render(){          

               return(

                  <div className="list" ref="list">

                      {

                          this.state.newsArr.map((n,index)=>{

                              return <div key={index} className="news">{n}</div>

                          })

                      }

                   </div>

               )          

           }

        }          

        //2.渲染组件到页面

        ReactDOM.render(<NewsList/>, document.getElementById("test"));  

    </script>

</body>

</html>

================

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524545.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IOS – OpenGL ES 设置图像锐化 GPUImageSharpenFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

Kubernetes 2018 年度简史

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;bot&小君君&#xff08;才云&#xff09;转自&#xff1a;K8sMeetup社区Kubernetes 在过去几年中一直是云计算领域最著名的开源项目之一。2018 年&#xff0c;Kubernetes 度过了自己的 4 岁生日。从 2014 年开源…

IOS – OpenGL ES 绘制十字 GPUImageCrosshairGenerator

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

携手伙伴谋增长 同心协力齐飞飏

3月6日&#xff0c;以“携手同心&#xff0c;逆风飞飏”为主题的锐捷网络2019年合作伙伴大会在南京召开。本次大会上&#xff0c;锐捷网络全面回顾了2018年“做精做强”战略下的成果与收获&#xff0c;重磅发布了下一代创新产品和解决方案&#xff0c;携手8000多家合作伙伴畅谈…

获取反射对象

package com.wuming.reflection; //什么叫反射 public class Test02 extends Object{//Object定义了一个方法被所有子类继承&#xff0c;就是public final Class getClass(),返回值类型是Class类//反射&#xff1a;就是通过对象获取类的名称public static void main(String[] a…

IOS – OpenGL ES 绘制线条 GPUImageLineGenerator

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

得到Class类的几种方式

反射可以获取类的属性&#xff0c;方法和构造器 类只有一个Class实列 一个Class对象就是加载到jvm中的一个.class文件 通过Class可以完整得到一个类中所有被加载的结构 package com.wuming.reflection; //测试Class类的创建方式有哪些 public class Test03 {public static…

IOS – OpenGL ES 设置图像模糊 GPUImageFastBlurFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

权威预测:未来一年,企业云服务将会如何发展?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a; James Kobielus转自&#xff1a; RancherLabs云计算已成为企业应用程序的主要范式。 随着企业使其计算和网络架构现代化&#xff0c;云原生架构是主要的目标环境。随着2019年的到来&#xff0c;很明显&#xff0c…

要闻君说:又一家云服务关停,原来是网易;MongoDB又爆泄露大新闻;Google 的中国版搜索引擎项目其实仍在继续...

关注并标星星CSDN云计算每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 大家好&#xff01;偶是要闻君。偶是要闻君。新的一周已开始&#xff0c;学习必须在路上&#xff01;&#xff01;&#xff01;文/要闻君近日网易相册发布公告称&#xff0c;自今年…

IOS – OpenGL ES 设置图像黑白噪点 GPUImageLocalBinaryPatternFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

所有类型的class对象

package com.wuming.reflection;import java.lang.annotation.ElementType;public class Test04 {public static void main(String[] args) {Class c1 Object.class;//类Class c2 Comparable.class;//接口Class c3 String[].class;//一维数组Class c4 int[][].class;//二维…

人人之间“不简单”,关系图谱“有一套”

戳蓝字“CSDN云计算”关注我们哦&#xff01;“通过一个人来维持亲密关系的人数最多可达到150人。”这曾经是人类学家罗宾邓巴引以为豪的科学结论之一。不过随着网络社交平台的出现以及日渐繁荣&#xff0c;很多人觉得“邓巴理论”在纷繁复杂的虚拟世界并不适用&#xff0c;如今…

IOS – OpenGL ES 桑原滤波/水粉画模糊效果 GPUImageKuwaharaFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

Docker精华问答 | 如何让一个容器连接两个网络?

如今Docker的使用已经非常普遍&#xff0c;特别在一线互联网公司。使用Docker技术可以帮助企业快速水平扩展服务&#xff0c;从而到达弹性部署业务的能力。在云服务概念兴起之后&#xff0c;Docker的使用场景和范围进一步发展。今天&#xff0c;就让我们来看看关于Docker的深度…

IOS – OpenGL ES 黑白马赛克效果 GPUImageMosaicFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

人生苦短,Python之父要解开这个困惑

“我累了&#xff0c;需要很长时间的休息。”2018 年 7 月&#xff0c;在 PEP 572&#xff08;Python 改进提案&#xff09; 被接受后的第三天&#xff0c;由于仍然不断面对着别人的质疑&#xff0c;反馈意见不断袭来&#xff0c;让这位一手缔造新的编程语言帝国的图灵奖获得者…

IOS – OpenGL ES 卡通效果(黑色粗线描边) GPUImageToonFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

云重磅 | 收购季:英伟达天价收购Mellanox;F5 6.7亿喜提Nginx;5G潮起3G潮落 中国移动耗资3000亿...

戳蓝字“CSDN云计算”关注我们哦&#xff01;嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周二第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…

IOS – OpenGL ES 像素化马赛克效果 GPUImagePixellateFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…