2018-12-28 18:32:13 qq593249106 阅读数 606
  • 2019 react入门至高阶实战,含react hooks

    这是2019 react入门到高级新课程 学习react,不仅能带来技术提升,同时提高开发效率和体验,更能带来好的就业机会。 本课程主要分为以下几个部分:  一,前端工程化基础?  主要学习node和npm、yarn的基本用法  二,es6语法 学习必备的es6常用语法 。 三,react基础知识  学习如何搭建react项目,以及react组件,jsx语法、css处理方案、生命周期等基础知识。 并且根据这些知识开发一个个人网站。 四,react进阶知识?? 学习表单的处理,事件处理,Portals的使用,以及数据请求和API管理等进阶知识。 五,react高阶知识?? 学习react高级特性,react hooks,以及整个react生态体系的构成和应用 。 努力学习哟,带你精通react。

    1979 人正在学习 去看看 梁富城

这个项目基于webpack,配 webpack 的教程:https://blog.csdn.net/qq593249106/article/details/84892069

简单配置

当前目录结构:

|- /config //webpack配置项
  |- ......
|- /dist //出口文件
  |- ......
|- /node_modules
|- /src //入口文件
  |- components //组件
  |- test //测试页面
    |- App.js//入口文件
    |- index.html//模板页面
    |- index.js//入口文件
  |- utils //工具库
|- package.json

使用 normalize.css

为了消除不同浏览器的影响,在入口文件 index.js引入 normalize.css 来清除不同浏览器的默认样式

import './normalize.css'

在 components 文件夹新建一个 Button 文件夹,在这个文件夹下新建一个 Button.js 文件:
Button.js

import React, { Component } from 'react'

class Button extends Component {
    render() {
        return (
            <button>
                {this.props.children}
            </button>
        )
    }
}

export default Button

简单写一下 Button 组件,然后在 test 文件夹下的 App.js 文件中引入 Button 组件:
App.js

import React, { Component } from 'react'
import {hot} from 'react-hot-loader'
import Button from '../components/Button/Button'

class App extends Component {
    render() {
        return (
           <div>
               <Button>button</Button>
           </div>
        )
    }
}

export default hot(module)(App)

终端输入npm run dev,打开网页:
在这里插入图片描述
组件引用成功,但是 button 标签的默认样式很难看,接下来在当前目录新建一个 Button.scss 修改样式来美化这个 Button 组件,使用 Sass 的语法:
Button.scss

//size 为 small 时的样式
$btn-small-padding: 4px 8px;
$btn-small-fontSize: 14px;

//size 为 large 时的样式
$btn-large-padding: 8px 16px;
$btn-large-fontSize: 18px;


.btn {
  padding: 6px 12px;
  border-color: #CCC;
  border-radius: 2px;

  font-size: 16px;
  font-weight: 400;
  color: #333;

  background-color: #fff;

  transition: background-color .1s ease;

  cursor: pointer;

  &:hover {
    background-color: #F9F9F9;
  }

  &:active {
    background-color: #EEE;
  }

  &[disabled] {
    opacity: 0.75;

    cursor: not-allowed;

    &:hover {
      background-color: #fff;
    }

    &:active {
      background-color: #fff;
    }
  }
}

.btn-small {
  padding: $btn-small-padding;

  font-size: $btn-small-fontSize;
}

.btn-large {
  padding: $btn-large-padding;

  font-size: $btn-large-fontSize;
}

使用 classnames

为了能让 Button 组件有多个样式选择,于是安装 classnames 插件来帮助切换类名来切换样式:

npm install classnames --save-dev

在 Button.js 中引入 classnames:

import classnames from 'classnames'

然后引入刚才写的 Button.scss 样式:

import './Button.scss'

编写 Button 组件的逻辑代码:
Button.js

import React, { Component } from 'react'
import classnames from 'classnames'
import './Button.scss'

class Button extends Component {
    render() {
        const {
            children,
            size,
            handleClick,
            disabled
        } = this.props
        const className= classnames({ //根据父组件传进来的 size 来判断使用什么类名
            btn: true,
            'btn-small': size === 'small',
            'btn-large': size === 'large'
        })
        return (
            <button
                className={className} //动态修改类名
                onClick={handleClick} //点击按钮执行的回调函数
                disabled={disabled} //禁用按钮
            >
                {children}
            </button>
        )
    }
}

Button.defaultProps = {
    children: 'Button',
    className: '',
    size: 'default',
    handleClick: () => {return null},
    disabled: false
}

export default Button

目前这个 Button 组件有三个功能:

  1. 根据传入的 size 来调整大小
  2. 可以传入一个点击 Button 组件执行的函数
  3. 传入 disabled 可以禁用 Button

接下来测试一下这三个功能,修改 App.js :

import React, {Component} from 'react'
import {hot} from 'react-hot-loader'
import Button from '../components/Button/Button'

class App extends Component {

    render() {
        return (
            <div>
                <Button size={'small'} >small</Button>
                <Button >normal</Button>
                <Button size={'large'}>large</Button>
                <Button handleClick={() => {console.log('click');}}>large</Button>
                <Button handleClick={() => {console.log('click');}} disabled>disabled</Button>
            </div>
        )
    }
}

export default hot(module)(App)

刷新页面:
在这里插入图片描述
前三个按钮大小分别是 small ,默认 ,large ,实现了:

  1. 根据传入的 size 来调整大小

接下来测试点击 Button 执行函数,第四个 Button,看控制台:
在这里插入图片描述
输出了 click ,实现了:

  1. 可以传入一个点击 Button 组件执行的函数

接下来测试 disabled,鼠标移到第五个 Button 上面,并进行点击:

鼠标形状变了,并且点击之后控制台没有输出,实现了:

  1. 传入 disabled 可以禁用 Button
2019-09-16 21:56:04 qq_43411439 阅读数 9
  • 2019 react入门至高阶实战,含react hooks

    这是2019 react入门到高级新课程 学习react,不仅能带来技术提升,同时提高开发效率和体验,更能带来好的就业机会。 本课程主要分为以下几个部分:  一,前端工程化基础?  主要学习node和npm、yarn的基本用法  二,es6语法 学习必备的es6常用语法 。 三,react基础知识  学习如何搭建react项目,以及react组件,jsx语法、css处理方案、生命周期等基础知识。 并且根据这些知识开发一个个人网站。 四,react进阶知识?? 学习表单的处理,事件处理,Portals的使用,以及数据请求和API管理等进阶知识。 五,react高阶知识?? 学习react高级特性,react hooks,以及整个react生态体系的构成和应用 。 努力学习哟,带你精通react。

    1979 人正在学习 去看看 梁富城

React引入组件库

  1. 组件库
    • 通常使用蚂蚁金服开发的组件库 ant design 官网往下拉底部左边前两个是react的组件库 PC和移动端
  2. 安装使用
    • $ npm i antd-mobile -D下载安装
    • 引入 react-app-rewired 并修改 package.json 里的启动配置。
      $ npm install react-app-rewired customize-cra --save-dev
    • 修改package.json里面的配置
        /* package.json */
        "scripts": {
        -   "start": "react-scripts start",
        +   "start": "react-app-rewired start",
        -   "build": "react-scripts build",
        +   "build": "react-app-rewired build",
        -   "test": "react-scripts test --env=jsdom",
        +   "test": "react-app-rewired test --env=jsdom",
        }
    
    • 然后在项目根目录创建一个 config-overrides.js 用于修改默认配置。
    • 使用 babel-plugin-import, babel-plugin-import 是一个用于按需加载组件代码和样式的 babel 插件(原理),现在我们尝试安装它并修改 config-overrides.js 文件。

      $ npm install babel-plugin-import --save-dev
         const { override, fixBabelImports } = require('customize-cra');
         module.exports = override(
           fixBabelImports('import', {
             libraryName: 'antd-mobile',
             style: 'css',
           }),
         );
    
    • 使用 import { Button } from ‘antd-mobile’;
2018-05-10 11:58:20 lydxwj 阅读数 452
  • 2019 react入门至高阶实战,含react hooks

    这是2019 react入门到高级新课程 学习react,不仅能带来技术提升,同时提高开发效率和体验,更能带来好的就业机会。 本课程主要分为以下几个部分:  一,前端工程化基础?  主要学习node和npm、yarn的基本用法  二,es6语法 学习必备的es6常用语法 。 三,react基础知识  学习如何搭建react项目,以及react组件,jsx语法、css处理方案、生命周期等基础知识。 并且根据这些知识开发一个个人网站。 四,react进阶知识?? 学习表单的处理,事件处理,Portals的使用,以及数据请求和API管理等进阶知识。 五,react高阶知识?? 学习react高级特性,react hooks,以及整个react生态体系的构成和应用 。 努力学习哟,带你精通react。

    1979 人正在学习 去看看 梁富城

react发布组件

絮叨一下

使用react半年了,一直在用react做项目,但从来没有发布过react组件。虽然会了不一定是大神,但是只要是大神就一定会,所以最近一直在研究怎么用react发布一个组件。网上很多案例教程,但是大多数项目包已经比较老旧(本文不介绍一步步初始化,搭建配置)。

于是自己就捯饬起来,首先打包构建应该分两个配置文件,一种是为了开发预览使用,一个是为了发布使用。开发预览要有页面模板,发布则不需要,毕竟是组件而不是页面项目。一直卡在一个问题上,预览构建可以使用,但是打包发布之后的文件引用起来一直各种报错。最后终于找到问题根本症结(其他问题欢迎提出一起讨论)。

output: {
    path: path.join(__dirname, '../lib'),
    filename: 'index.js',
    libraryTarget: 'umd'  
    //发布组件专用,必须配置libraryTarget: 'umd',umd为兼容模式
},

目的

主要为了简化节省初始化搭建时间,可以克隆下来修改一下包名,版本,发布文件夹,作者等差异点,就可以直接使用。

项目GitHub地址

备注:

本项目中有完整webpack预览、发布配置,仅供参考学习,如果发现问题欢迎指正。

2018-10-11 19:59:59 qq_41212914 阅读数 105
  • 2019 react入门至高阶实战,含react hooks

    这是2019 react入门到高级新课程 学习react,不仅能带来技术提升,同时提高开发效率和体验,更能带来好的就业机会。 本课程主要分为以下几个部分:  一,前端工程化基础?  主要学习node和npm、yarn的基本用法  二,es6语法 学习必备的es6常用语法 。 三,react基础知识  学习如何搭建react项目,以及react组件,jsx语法、css处理方案、生命周期等基础知识。 并且根据这些知识开发一个个人网站。 四,react进阶知识?? 学习表单的处理,事件处理,Portals的使用,以及数据请求和API管理等进阶知识。 五,react高阶知识?? 学习react高级特性,react hooks,以及整个react生态体系的构成和应用 。 努力学习哟,带你精通react。

    1979 人正在学习 去看看 梁富城

【转载】https://www.rails365.net/articles/react-zui-hao-de-ui-zu-jian-ku-ji-jin

这里有一篇讨论,说了哪个才是 React 最好的 ui 组件库。

这里有更多:https://github.com/brillout/awesome-react-components#ui-frameworks

我需要用到,所以这里把一些国内外的组件库收集汇总一下,以便找起来方便

  • MUI(官网)
  • MUI(平台)
  • Rebass:可配置react无状态Fcunctional UI组件
  • react-mdl - 针对Material Design Lite的React组件

 

  对比结论:【转载】https://blog.csdn.net/qiqingjin/article/details/79219206

 

  所整理的有限,知道别的的可以补充下哈,错的地方也希望指明出来,好改正!

 

       最后,送上react中文社区和一个我自己再看的视频教学,多多交流多多学习。

  中文社区:http://react-china.org/

       学习视频:https://www.bilibili.com/video/av25294556?from=search&seid=13773917913134190848

  谢谢!

  

  欢迎转载,转载请标明出处。 
  如果您觉得本篇博文对您有所收获,请点击右下角的 [推荐],谢谢!

 

2017-02-23 10:34:50 mjzhang1993 阅读数 1072
  • 2019 react入门至高阶实战,含react hooks

    这是2019 react入门到高级新课程 学习react,不仅能带来技术提升,同时提高开发效率和体验,更能带来好的就业机会。 本课程主要分为以下几个部分:  一,前端工程化基础?  主要学习node和npm、yarn的基本用法  二,es6语法 学习必备的es6常用语法 。 三,react基础知识  学习如何搭建react项目,以及react组件,jsx语法、css处理方案、生命周期等基础知识。 并且根据这些知识开发一个个人网站。 四,react进阶知识?? 学习表单的处理,事件处理,Portals的使用,以及数据请求和API管理等进阶知识。 五,react高阶知识?? 学习react高级特性,react hooks,以及整个react生态体系的构成和应用 。 努力学习哟,带你精通react。

    1979 人正在学习 去看看 梁富城

react 资源

使用 react 开发可能会用到的组件,以及指导

Material-ui

全面的UI组件

Amaze UI React

比较全面的UI组件,国内开发

Ant Design React

基于 npm + webpack + babel 工作流,

React-Bootstrap

需要引入额外的css样式文件

Rebass

React UI

很全面

Recharts

一个定义图表的插件

react-d3-components

react 图表插件

ReactJS-AdminLTE

后台管理界面AdminLTE的react版本

react全家桶

使用react 开发后台管理系统的技术博客

react 语法规范

eslint 和 jscs 关于 es6 的语法规范示例

react-flatpickr

体积很小的 时间选择插件

没有更多推荐了,返回首页