React之mockjs+sass+生命周期函数
mdn W3C标准网站
运行sass
cnpm i -D node-sass-chokidar npm-run-all
rem单位设置
<script>
//rem单位设置
document.documentElement.style.fontSize = (window.innerWidth)/750 * 100 + 'px';
</script>
mock数据
1.下载mockjs
cnpm i -D mockjs
2.引入mockjs
var Mock = require('mockjs');
var fs = require('fs');
3.给出随机数据
Mock.Random.extend({
title:()=>Mock.Random.pick([1,2,3,4,5,6,7,8,9])
})
4.随机数据结果
var data = Mock.mock({
'arr|1-20':[{
'id|+1':1,
'title':'@title'
}]
})
5.写入文件data.json
fs.writeFile('./data.json',JSON.stringify(data),()=>{})
// 即出来相应的JSON数据
React 组件生命周期
1.组件的生命周期可分为三个状态:
1).Mounting: 已插入到真实DOM
2).Updating:正在被重新渲染
3).Unmounting:已移出真实DOM
2.生命周期的方法有:
1)componentWillMount 在渲染前调用,在客户端,也在服务端
2)componentDidMount:在第一次渲染后调用,只在客户端
//之后组件已经生成了对应的DOM结构,可以通过this.getDOMNode()来进行访问。 如果你想和其他JavaScript框架一起使用,可以在这个方法中调用setTimeout, setInterval或者发送AJAX请求等操作(防止异部操作阻塞UI)。
3)componentWillReceiveProps在组件接收到一个新的prop(更新后)时被调用。这个方法在初始化render时不会被调用。
4)shouldComponentUpdate 返回一个布尔值。在组件接收到新的props或者state时被调用。在初始化时或者使用forceUpdate时不被调用。
可以在你确认不需要更新组件时使用。
5)componentWillUpdate在组件接收到新的props或者state但还没有render时被调用。在初始化时不会被调用。
6)componentDidUpdate 在组件完成更新后立即调用。在初始化时不会被调用。
7)componentWillUnmount在组件从 DOM 中移除的时候立刻被调用。
8)ReactDOM.unmountComponentAtNode(document.getElementById('root'))
// 组件初始化的时候 created
constructor(props) {
super(props)
}
// 组件挂载之前 beforeMount
componentWillMount() {
}
// 组件挂载完成 mounted
componentDidMount() {
}
// 组件将要接收新的props Vue没有的
// 执行完成之后,this.props指向新的props
// 唯一一个和props相关的生命周期
componentWillReceiveProps(nextProps) {
// 旧的props this.props
// 新的props nextProps
}
// 通过返回值判断组件是否需要更新,用于React优化Vue没有的
// true更新,false不更新
shouldComponentUpdate(nextProps, nextState) {
// 旧的props this.props
// 新的props nextProps
// 旧的state this.state
// 新的state nextState
}
// 组件将要更新 beforeUpdate
componentWillUpdate(nextProps, nextState) {
}
// 组件更新完成 Updated
componentDidUpdate(prevProps, prevState) {
}
// 组件将要卸载
componentWillUnmount() {
}
卸载组件
1.挂载到Dom上时
ReactDom.unMountComponentAtNode(节点)
2.挂载在一个节点上
不渲染,等于null即可
组件
容器组件 有state数据管理
视图组件 没有state(class或函数)
// 函数(props通过函数的参数接收)
(props)=>{
}
ReactDOM.render()渲染组件时返回的是组件实例;
而渲染dom元素时,返回是具体的dom节点
this.refs 和 ReactDOM.findDOMNode区别
this.refs 获得的是虚拟DOM,而ReactDOM.findDOMNode 获得的是实际DOM。
1.ref添加到Compoennt上获取的是Compoennt实例,添加到原生HTML上获取的是DOM
2.ReactDOM.findDOMNode,当参数是DOM,返回值就是该DOM;当参数是Component获取的是该Component render方法中的DOM
refs vue中获取ref this.$refs.input
react获取ref
this.refs.input.value
<input type='text' ref='input'/>
生命周期阶段
实例化时期
react组件在实例化时会依次调用如下组件方法:
getDefaultProps
getInitialState
componentWillMount
render
componentDidMount
存在期
当react组件被实例化后,用户的一些操作会导致组件状态的更新,此时如下方法将依次被调用:
componentWillReceiveProps
shouldComponentUpdate
componentWillUpdate
render
componentDidUpdate
销毁时期
在组件销毁的时候,会调用如下组件方法:
componentWillUnmount
React之mockjs+sass+生命周期函数的更多相关文章
- react父子组件各自生命周期函数加载的先后顺序
理解记忆总结: 父组件即将挂载(最外层的父组件都还没准备进入,其内部的子组件当然更没进入了) -> 子组件即将挂载 -> 子组件挂载完成(父内部都没完成,父当然不能算完成) -> ...
- React的生命周期函数
概述 在React中,生命周期函数指的是组件在某一个时刻会自动执行的函数 constructor 在类或组件创建的时候被自动执行,我们可以说它是生命周期函数,但它并不是React所特有的,所有的Es6 ...
- React——组件的生命周期函数
每一个组件都有一些生命周期函数. 当组件实例被创建并且会插入到DOM中,下面这些函数会被调用 constructor componentWillMount render componentDidMou ...
- React 学习(四) ---- 生命周期函数
现在我们能修改状态,页面可以进行交互了,但是还有一种状态改变没有解决,那就是倒计时效果,时间一直在变化,组件状态也一直在改变,但我们什么都没有做,如果要实现这样的效果,需要怎么处理? 我们都知道,改变 ...
- React生命周期函数详解
React生命周期函数 生命周期函数是指在某一个周期自动执行的函数. React中的生命周期执行过程 以下是React中的常用的生命周期函数,按个部分中按照自动执行顺序列出,这几个过程可能存在同时进行 ...
- react生命周期函数使用箭头函数,导致mobx-react问题
最近新人加入了项目,遇到了一个很奇怪的问题.mobx observable 属性,onChange的时候就是页面不会刷新. 试来试去,就是不知道什么原因,后来其他同事查到是因为componentWil ...
- React组件详细介绍及其生命周期函数
组件的详细说明 通过Reac.createClass({...})创建组件的时候,应该有一个render()方法,也可以在其中添加生命周期函数. render方法 当调用该方法的时候,会检测this. ...
- React组件安装使用和生命周期函数
React安装在使用react时 需要安装 两个模块 react react-dom 初始化时 需要用到react-dom中的render方法 具体如下: import ReactDOM from & ...
- 2.React 生命周期函数
什么是生命周期函数:在某一时刻组件会自动调用执行的函数. import React,{ Component,Fragment } from 'react' class Note extends Com ...
随机推荐
- set theory
set theory Apart from classical logic, we assume the usual informal concept of sets. The reader (onl ...
- jQuery篇
jQuery 1.为什么使用jQuery? js中window onload事件只能出现一次,如果出现多次,后面的事件会覆盖掉前面的事件 js代码容错差 简单的动画效果实现很繁琐,例如简单的动画渐变效 ...
- eclipse优化自动补全(解决空格、分号等上屏问题)
第一步:打开"Window"——>"Show View"——>"Other"——>找到"Plug-in Deve ...
- 拿到新linux服务器,从配置环境到跑起项目的部署流程
今早翻开手机看到某云一条广告Linux1 核 2 GB 1 Mbps服务器10元一个月,正巧最近在搞linux,于是下单了一台2个月20. 上班来到公司后,借空闲时间一顿研究,一波骚操作配置后,浏览器 ...
- v-cloak使用
v-cloak:保持和元素实例的关联,直到结束编译后自动消失. v-cloak指令和CSS 规则一起用的时候,能够解决差值表达式闪烁的问题(即:可以隐藏未编译的标签直到实例准备完毕). 就拿上一段代码 ...
- 37)PHP,获取数据库值并在html中显示(晋级2)
下面的是上一个的改进版,我知道为啥我的那个有问题了,因为我的__construct()这个函数的里面的那个变量名字搞错了,哎,这是经常犯得毛病,傻了吧唧,气死我了. 之前的那个变量的代码样子: cla ...
- P2486 [SDOI2011]染色 区间合并+树链剖分(加深对线段树的理解)
#include<bits/stdc++.h> using namespace std; ; struct node{ int l,r,cnt,lazy; node(,,,):l(l1), ...
- hdu 2586 How far away ?(LCA模板)(倍增法)
在dfs的过程中维护三个数组: deep[i],表示i点在树中的深度: grand[x][i],表示x的第2^i个祖先的节点编号: dis[x][i],表示x到它2^i祖 #include<io ...
- 必应翻译:让Windows上的翻译不再是难事
文章译自:Translations Made Easy on Windows 比方说今年夏天你想出国旅行,计划去一趟德国.你的行程很丰富:参观慕尼黑和柏林,乘坐游船沿莱茵河而下,再品尝几串摩泽尔的葡萄 ...
- 02-Java开发环境的配置
在本章节中我们将为大家介绍如何搭建Java开发环境. Windows 上安装开发环境 window系统安装java 下载JDK 首先我们需要下载java开发工具包JDK,下载地址:http://www ...