005 - react

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30856231/article/details/76269465
 
 
 
 
"proxy": "http://jiangtoutiao.duapp.com/",
  "proxy": "http://localhost:80/",

#########   Route  就是路由

##############    react本地打不开,获取不到数据库。把那个重启   npm start     ################

git上传要写限制500M那个,要不页面不更新

#######################  REACT  中不允许用 == 两个等号  ####################################

###        const命令
const声明一个只读的常量。一旦声明,常量的值就不能改变。


###  报错    中间又函数没传过去
 _this3.props.onChange is not a function
中途所有传数据的  传的函数都要传
eg:    3   <Index onChange={this.onchange} />
   <TopMenu data = {this.props.data} onChange={this.props.onChange}/>
   <a onClick={()=>this.props.onChange(v.id)}>{v.name}</a>

###  报错    Array to string conversion
echoprint 输出数组报错!echo print是输出字符串的。
请使用var_dump,print_r


###  报错  
数据库不要随便输出、

不要 echo  ok

print_r data,有可能返回到ajax,不认识

###   一般项目开发可嵌入 react.js   css.js  文件来开发
   引入  react


###  浏览器  下载  sql 
直接 ctrl+s  保存为  .sql.txt   sql导入时直接导入就行  


###  
如果出现404页面 是路径问题   大小写问题

###   Error    Wraing
1.注意所有用到 db的地方  大小写
2.db 中的 public function query($spl) 没写
3.  db   28 474.

    onclick(){
        $('')
    }

###    出不来页面:
/view/
改成APP/view/
进了phpfunction index(){ 中,print_r(123); 看一下,能不能出来123.}
如果还是没有,看看 include 'APP/view/gameadmin.html'; 这几个字对了没,核对文件夹里,
是不是 gameadmin  写成 Gameadmin 了 。一般只有这个错误


###   git 组织

1.右上角 git  +  最后一个  新组织
2.创建新组织  账户 
3.添加好友账户
4.创建 文件 
5.设置每个用户是owner.大家就可以上传了。


## 注意单词拼错 导致报错

###  注意 super报错
class Logins extends React.Component   `不是ReactDOM `
ReactDOM.render(<Login/>,document.querySelector('#root'));

###  数组对象 集
console.table()

db 中加入



 3JS 文件
bowerser.min.js
react-dom.js
react.js


###    home.html
    <script src="<?php echo JS_PATH?>browser.min.js"></script>
    <!-- ES6转成 ES5  加载完后会寻找 type="text/babel" 的文件,解析,由babel调用jsx的数据,拿回齐数据转换,执行-->
    <script src="<?php echo JS_PATH;?>react.js"></script>
    <script src="<?php echo JS_PATH;?>react-dom.js"></script>
    <script type="text/babel"  src="<?php echo JS_PATH;?>index.jsx"></script>


###    jsx文件
// 虚拟dom
//解决比对问题,让页面更高效
// render 渲染

var data = [1, 2, 3, 4];
var el = (
    <ul>
        {data.map((v, i) => <li key={i}>{v}</li>)}
    </ul>
);
ReactDOM.render(el, document.querySelector('#root'));

setTimeout( () =>{
var data = [1, 2];
el = (
    <ul>
        {data.map((v, i) => <li key={i}>{v}</li>)}
    </ul>
);
ReactDOM.render(el, document.querySelector('#root')); }, 3000);
//  render(虚拟dom对象,真实的DOM对象)   把虚拟dom转换为真实dom



#######################    #########################################
  
// 1. 虚拟DOM       //解决比对问题,让页面更高效
const el = <h1>this is h1</h1>;
// 2. 虚拟DOM 之 组件
// react.js     window.react
// react-dom.js   window.reactdom
// 3. 组件 -> state
// 4. 组件 -> props
// 5. 组件 -> 生命周期    componentDidMount
// 6. 组件 -> 事件系统
// 7. 多组件协作(如何拆分组件)


###   
eval('2+3*4')


################################33################################33##############################

####################################  安装react app 环境  ######################################33

################################33################################33#############################
npm install -g create-react-app   
切换到桌面
运行 create-react-app  test
漫长的下载过程
cd test
npm start


### json语法中严格不能使用单引号
##  `网址`
https://reacttraining.com/react-router/web/example/basic


`注意错别字`

在: npm react  testpackage.json 
npm install react-router-dom --save  `下载组件  Router Route Link`
npm install swiper --save  `下载组件  Router Route Link`
###  ***"proxy":"http://192.168.3.55:80",***

npm start

##### 引入jquery 
npm install jquery --save   `下载组件  jquery`
import $ from 'jquery';
npm start

`下载组件  antd zujian-------------------------///////////////////-----------------------////////`
npm install antd --save  

#################  #################

npm install wangeditor --save

###################     npm start之后有哪些工作        ###########

npm start
 1.启动了一个本地服务器(webpack - dev - server)   (以前是apache) 2.自动打开浏览器,访问服务器地址 localhost:3000/ index . js开始找到所有的 import 的资源
bludle . json_encode
......js

public/index.html   写入上一步生成的jscss路径
js. websockt serviceworker

检测src下的所有文件,有任何变化,
服务器用过websocket建立起来的长连接
通知浏览器 (浏览器收到通知以后刷新页面)




#########################################################################################

直接输入
`explorer http://www.baidu.com`
就会打开百度

 component={Search}

#########################################################################################
   antd 组件          https://ant.design/components/icon-cn/
########################################################################################
看代码 ,看示例,分析代码
##  Icon Icon图标里取找

##  布局
##  table 表格
    columns        data  
#########################################################################################
ES6  箭头函数
#########################################################################################
`
const {a,b,c,d} = {a:1,b:2,c:3,d:4}
const fn = (v)=>{console.log(v)}
const fn = (v)=>{
    return (
        <div>this is h1</div>
    )
};`

const fn = (v)=>v.id = id
###  箭头函数
class Admin1 extends React.Component {
    constructor() {
        super();
        this.state = {
            a: 1,
            b: 2
        }
    }
    
    render() {

const {a,b,c,d} = {a:1,b:2,c:3,d:4}
        const fn = (v)=>{console.log(v)}
        const fn = (v)=>{
            return (
                <div>this is h1</div>
            )
        };`

        //解构赋值
        const {a, b} = this.state;
        // 对象展开
        const o = {x: 1, y: 2, z: 3 ,w:()=>{}};
        return (
            <div>
                <h1 {...o}>自定义属性</h1>
            </div>
        )
    }
}

##################################

state,不要改props
##########################################################################################
                     phpstrom编程字体
consola
monaco
monosoace
source
menlo
consolas

vim 编辑

##########################################################################################

上传图片    

#############################################################
怎样上线:

npm run build

build/
    index.html
   xxx.js
   xxx.css
   img/.............
   
#####################       react 项目上传       #######################################
web-dev-server  服务器

在百度云申请服务器:

1.申请服务器
2.gitclone 
2.1 按照clone下来的文件里的packjson文件,把原来的改到这儿
3. 复制框架:    app                home.php
                           html      index.html
4.              core            db.php
5.              index.php
6.              public

用框架里的index.php替换掉这个clone下的index.php

7.
4.创一个.gitignore文件    忽略某些    
在里面写`.idea/`  和文件的名字

5.git add上去

导出  database.sql    添加drop文件

放在主文件目录下

news 导出自定义 sql文件  

百度云数据库导入文件和数据库

修改db

script:public/js/bundle.js
home:index

###   npm run build
1.public下的东西,static替换public
2.www目录下 找见那几个php文件,放在 appa目录下,views里的index.htmlbuild生成的index.html替换
3.修改 【www目录下php/20170713/react/index.php/   改为  /  数据库路径
3.1 图片(../../img/)修改为 /static/img/
    数据库改为 /index.php/

build 下的json\ico拷贝到根目录下

public  改为 static

重新git 

把后台传出去
##########################################################################################
md5(time());

##########################  改进3部曲
1.改为: 
2.  - url : /
    script: index.php
  - url : /static/(.*)
    static_files : static/$1
  - regex_url : ^/(.*)$
    script : index.php/$1

2.页面拆分
  home.php-->index
  admin.php-->admin


   npm run build     之后    
3.替换
fetch("/index.php/
fetch("/

4.import router  router

####  后台的修改
5. 把后台生成的index.html名字改为admin.html,再放到百度云上传的文件中 
6. 把后台的css\js的东西放进去 


getNewsById  limit的修改

####  改到百度云的 数据库
  "proxy": "http://localhost",
name:'text'


####   下拉刷新代码   下滑刷新
var neirong = document.querySelector('.contentall');
let that = this;
window.onscroll = function () {
    if (document.body.scrollTop >= neirong.offsetHeight - window.innerHeight) {
        var page = that.state.page + 1;
        console.log(page);
        fetch('/20170713/react/index.php/home/getNewsByPage?id=' + that.state.currentChannel + '&page=' + page)
            .then(res => res.json())
            .then(r => that.setState({
                o: that.state.o.concat(r),
                page:page
            }))
    }
}

###################        ###########################

<Route path="/show/:id" component={Show}/>  
{/*传入id*/}
show 组件中 iframe
网址中 /show/assdfghj   /show/后边所有的(assdfghj) 都会传到:id中去


上传图片到服务器
http:localhost80改为   /static/upload


  <div dangerouslySetInnerHTML={{__html:123}}></div>

猜你喜欢

转载自blog.csdn.net/qq_30856231/article/details/76269465
005