zoukankan      html  css  js  c++  java
  • 17-7-25-js记录

    先说明下为什么说好每天一更,周五周六周日都没有更新。因为在周五的时候,上司主动找我谈了转正后的工资4-4.5K。
    本来想好是6K的,后来打听了一圈公司的小伙伴,都是5-5.5,我就把自己定到了5K。
    万万没想到,只有4-4.5, 估计是4.5然后扣掉各种以后,就4K。
    也不是说不能活,就是觉得和周围的小伙伴相比,显得有点低。所以心情有点低落。
    这两天也都在玩,就当放松心情了。
    自己也去网上找了一圈,发现最近工作机会有点少,加上在公司里搞得杂七杂八,没有什么是精通的了,所以还是先好好待着吧。
    既然选择待着,就好好干活吧~ 下班自己再学点其他的,增加就业机会。
    然后今天早上依然不太想去上班,就又请假了一天。不过发现在家也没事干,还是学习了React。
    因为公司项目未来即将要用到。所以先学习一下。稍后分享就分享react方面的知识。

    # react的入门
    react就是一个js框架,它采取组件化的结构,实现页面局部的快速加载,而不用每次都刷新整个页面。
    简单的说,就是 很好用!
    而且适配pc和移动端。一套代码,多地方使用,提升效率。

    1. 首先安装npm。
    2. `npm init`
    2. 使用npm安装webpack(这里的react都是使用webpack来管理的,公司是使用gulp来管理,虽然还没深入研究。明天去研究研究。)
    3. `npm install --save react react-dom`
    4. 基本就可以开始了,这里不讲文件的分布,就讲下react的大致写法。

    1. `import React from 'react' //(`首先是引用react)
    2. ```
    export default class BodyIndex extends React.Components
    render(){
    return(
    <h1>我是body部分</h1>
    )
    }
    ```
    // 这里是写一个class部分(ES6的写法,由于越来越流行ES6,所以都采取ES6的写法),继承React的Components
    // 里面的render是react的语法,即准备返回什么,return里面是要返回到页面上的内容。
    3. 在return中也难免会有一些注释,如果直接使用//来注释,则会造成错误,所以要使用{/* ... */}来注释。
    4. 在BodyIndex的父级js中,如果要使用BodyIndex,则需要使用`import BodyIndex from 'bodyIndex的文件路径'`
    5. 然后在return中 直接使用`<BodyIndex />`即可完美引用,当然前提bodyindex需要export出去。
    6. react有几个加载状态`componentsDidMount`,`componentsBeforeMount`都可以在这里面设置自己需要的事件。
    7. 当然,除了几个状态以外,react也有独立的state和props。state即状态,可以在一开始的时候设置`this.state = {id: 111}`
    然后在使用的时候,如果要改变state可以使用`this.setState({id: 222})`重新赋值来覆盖掉原来的即可。
    8. props是父子页面之间互相传递的方式。在父页面中可以使用`<BodyIndex userid={123}`来将userid=123传给bodyindex页面,
    然后在bodyIndex的页面中,使用this.props.userid就能来获取父页面发来的数据了。
    9. 在当前页面中写function以后,如果在比如input-button的标签中调用,需要书写如下`onClick={this.functionName.bind(this,[args])}`的形式,
    其中args为可选,如果填写会发送给function当做参数,这是ES6的语法,需要记住。
    10. 从父页面传来的数据在使用前可以先进行验证,这些都是react里面有现成方法的,比如userid为数字
    `BodyIndex.propTypes = {userid : React.PropTypes.number}`,这句话写在bodyindex页面即可进行验证。
    11. 从父页面传来的数据如果没有填写,自己页面填写了`this.props.userid`也不会报错,只是输出空数据。
    当然,我们也可以写一些默认的值来避免这些尴尬,如果有传过来,就使用传过来的值,没有就使用默认值
    `const defaultPrps = {userid : 001}; BodyIndex.defaultProps = defaultProps`.
    12. 如果想从父页面(A)向孙子页面(C)传递(隔着一个中间页面(B)传值),不需要很复杂的写好几个`this.props.XX = XXOO`,
    可以直接在B页面中,C页面的代码处写`{...this.props}`就能将A的页面传来的数据给C。
    13. 后面就是关于CSS部分,明天再来聊,拜拜啦。

    昨天请假没去公司,今天就遗留了很多任务,基本就一直在搞。
    不过上司一大早过来就推翻了之前两周做的事情,决定用比较底层的部分来写页面,而不是直接使用别人封装好的。然后就是修改,调试。最后因为一点点小问题,就结束了今天的工作。
    晚上的时候本来想学`react-router`部分的,但是好像是版本太低还是什么原因,一直提示错误,很烦躁。
    就先暂时不学了,明天去公司有时间再自己调试调试。

    # js记录
    1. for ... of方法,用来取array中的值
    2. for ... in方法,用来取object中的'key'
    3. && 和 || 在执行时会造成短路
    4. switch 判断时采用的是 === 全等于
    5. object 可以多次嵌套obj,在存储部分数据时很好用(json格式)
    6. `a = [1,2,3]; a[100] = 10001; a.length => 101; a => [1,2,3, undefined X 97, 10001]`
    7. 不管function是否带有形参,都可以在函数体中使用arguments来获取实际传进来的参数集合(array形式)
    8. 在函数声明时,可以用...args来获取剩余的参数(funciton a (x, ...args){}; a(1,2,3,4) => x => 1,args => [2,3,4])

    今天学的有点少~ 玩了几把游戏 明天补上。 拜拜咯。

  • 相关阅读:
    spring中用到哪些设计模式?
    配置监听器使项目启动时创建消费者
    ActiveMQ依赖JDK版本关系
    ActiveMQ之topic主题模式
    ActiveMQ与Spring整合
    ac自动机模板
    poj 3735 Training little cats矩阵快速幂
    KMP算法模板 求子串和模板串首先匹配的位置
    hdoj 2665 Kth number主席树裸
    vijos P1081野生动物园 主席树求区间第K大
  • 原文地址:https://www.cnblogs.com/by330326/p/7237113.html
Copyright © 2011-2022 走看看