react的学习

安装react

老方法:

npm install -g create-react-app
create-react-app my-app

npx方式:

npx create-react-app my-app
npm i react-router-dom
npm i axios
cd my-app
npm start

虚拟DOM(JavaScript对象)与diff

  1. 虚拟DOM(JavaScript对象)
    html:
<div id="main">
  <input type="text" class="in" value="哈哈哈">
  <ul>
      <li>df</li>
      <li>qwer</li>
  </ul>
</div>

js:

var element = {
	tagName: 'div', // 节点标签名
	props: { // DOM的属性,用一个对象存储键值对
		id: 'main'
	},
	children: [ // 该节点的子节点
		{
			tagName: 'input',
			props: {
				class: 'in',
				type: "text"
			},
			children: ["哈哈哈"]
		},
		{
			tagName: 'ul',
			props: {},
			children: [{
					tagName: 'li',
					props: {},
					children: ["df"]
				},
				{
					tagName: 'li',
					props: {},
					children: ["qwer"]
				}
			]
		},
	]
}
  1. diff
    递归逐层比较
    描有点丑别在意
    递归demo
digui = (a) => {
  if (a == 1) {
    return 1;//出口
  }else{
    return digui(a-1) + a;//调用自己递归
  }
}
console.log(digui(100));

注意

  1. 组件名首字母大写
  2. state的使用
this.state={}
this.setState({})
this.setState({},callback())
  1. 路由
import { Route,BrowserRouter,Switch } from 'react-router-dom'
<BrowserRouter>
    <Switch>
        <Route path="/" component={ Main }></Route>
        <Route path="/Login" component={ Login }></Route>
        <Route path="/Login" component={ Login }></Route>
    </Switch>
</BrowserRouter>

<Link to="/">Login</Link>  =  <a href="/">Login</a>
<Link to= {{ pathname: '/Login' }}>Login</Link>  =  <a href="/Login">Login</a>

函数中跳转(该路由要在路由管理中注册)

this.props.history.push("/One");
window.location.href="/One" 
window.location.reload()

#npm run eject出错的话

git add .
git commit -m "init"

设置代理跨域,可能在package设置proxy不起作用,

const proxy = require("http-proxy-middleware");

module.exports = function(app) {
  app.use(proxy("/api", { 
      "target": "http://mobilecdn.kugou.com/api/v3",
      "secure": false,//安全性ssl https
      "changeOrigin": true,//跨域
      "pathRewrite": {
        "^/api": ""
      }
    }));
};

使用的时候

axios..get('/api/search/song?format=json&keyword=3&page=1&pagesize=30&showtype=1').then(res => {
    console.log(res);
})
  1. css
  • 写在css文件中 list-style:none = listStyle:“none”
    命名加.module
    className={[${styles.a},${styles.b}].join(’ ')}
import styles from './temp.module.css';  

<div className={ styles.app }>A0</div>
  • 写在js文件中
import React,{ Component } from 'react';
import { Link } from 'react-router-dom'
export default class App extends Component {
  render(){
    const Sty = {
      listyle:{
        listStyle: 'none'
      }
    }
    return (
      <div>
        <ul>
          <li style={ Sty.listyle }><Link to="/">Login</Link></li>
          <li style={ Sty.listyle }><Link to="/One">One</Link></li>
          <li style={ Sty.listyle }><Link to="/Two">Two</Link></li>
        </ul>
        { this.props.children }
      </div>
    );
  }
}

  1. url记得可能要有http://才能识别是url
qrUrl:"http://www.baidu.com"

生命周期

描有点丑别在意

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值