React入门2(个人学习笔记)

前端请求

JavaScript具有很好的模块和方法来发送可用于从服务器端资源发送或接收数据的HTTP请求。在本文中,我们将介绍一些在JavaScript中发出HTTP请求的流行方法。

Axios

首先在项目中打开dos窗口:

C:\workspace\react-demo> npm install axios --save

其次:

import React from 'react';
import axios from 'axios';

class Axios extends React.Component {
	constructor(props) {
		super(props);
		this.state = {
			list: []
		}
	}

	getDate = () => {
		//通过axios获取服务器数据(此服务器允许跨域)
		var api = 'http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20';
		axios.get(api)
			.then((response) => {
				console.log(response.data.result);//随具体内容变化
				this.setState({
					list: response.data.result
				})
			})
			.catch(function(error) {
				console.log(error);
			});
	}

	render() {
		return (
			<div>
			<h3>Axios</h3>
			<button onClick={this.getDate}>确认</button>
			</div>
		)
	}
}

export default Axios;

生命周期函数

在以下情形触发的一系列方法,叫做组件的生命周期函数:

1.组件加载之前;
2.组件加载完成;
3.组件更新数据;
4.组件销毁;

以下方法按加载顺序排序

组件加载时触发:constructor, componentWillMount, render, componentDidMount;(mount: 挂载)
组件更新时触发:shouldComponentUpdate, componentWillUpdate, render, componentDidUpdate;
组件销毁时触发:componentWillUnmount;
在父组件里改变props传值时触发:componentWillReceiveProps;

constructor 和 render 不是组件生命周期函数;
componentDidMount较为常用:它在组件第一次渲染完成后自动调用;
componentWillUnmount:
触发的典型场景:数据更新,页面重新渲染时,导致组件被取消挂起

shouldComponentUpdate(){
	return true;//必须返回一个boolean
}
//当且仅当返回true, 才会执行更新

React-router

可以让根组件动态地挂载不同的组件;根据用户访问的地址,动态地加载不同的组件

  1. 首先在项目中打开dos窗口
C:\workspace\react-router> npm install react-router-dom --save
  1. 以 在App.js中配置 router 为例
    2.1 引入react-router-dom;
    2.2 配置Link(跳转链接);(点击跳转)
    2.3 配置Route(路径);(相当于监听器?)

App.js

import React from 'react';
import './App.css';
import Home from './Home';
import News from './News';
import Product from './Product';
import {
  BrowserRouter as Router,
  Route,
  Link
} from 'react-router-dom';

function App() {
  return (
    <Router>
      <div>
        <header className='header'>
          <Link to='/'>首页</Link>
          <Link to='/news'>新闻</Link>
          <Link to='/product'>商品</Link>
        </header>
        <Route path="/" exact component={Home} />
        <Route path="/news" component={News} />
        <Route path='/product' component={Product}>
       </Route>
      </div>
    </Router>
  );
}
export default App;

注意:

<Router> </Router>中只允许存在一个子元素,如果存在多个会报错
exact关键字:匹配path='/news'的路由会默认匹配path='/'的路由,
exact表示"精确匹配",有了它,模块才能独立渲染

在这里插入图片描述

router跳转页面的时候,需要向动态生成的子组件传值

  1. get传值
  2. 动态路由
  3. Localstorage

App.js

import React from 'react';
import Content from './Content';

import {Route} from 'react-router-dom';

function App() {
  return (
    <Router>
      <div>
      	{/*get传值*/}
      	<Route path='/news/content' component={Content} />
      	
      	{/*动态路由传值*/}
        <Route path='/news/content/:aid' component={Content} />
      </div>
    </Router>
  );
}

News.js

import React from 'react';
import {Link} from 'react-router-dom';

class News extends React.Component {
	constructor(props) {
		super(props);
		this.state = {
			list: [{aid: '1',title: '新闻1'}, {aid: '2',title: '新闻2'}, {aid: '3',title: '新闻3'}]
		}
	}
......
	{this.state.list.map((value,key)=>{
		return (<li key={key}>
			{/*get传值*/}
			<Link to={'/news/content?aid='+value.aid}>{value.title}</Link>
			
			{/*动态路由传值;下面是ES6的模板字符串,
			用`(反引号)标识,用${}将变量括起来*/}
			<Link to={`/news/content/${value.aid}`}>{value.title}</Link>
		</li>)
	})}

Content.js

需要在项目中安装url模块

import url from 'url';

componentDidMount() {//生命周期函数
	//获取动态路由的传值
	console.log(this.props.match.params.aid);
	//get方法传值
	console.log(url.parse(this.props.location.search, true).query.aid);
}
以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值