zoukankan      html  css  js  c++  java
  • 二手前端入门React项目

      个人对ReactJS这门技术比较感兴趣,在基友的帮助下成功创建了一个React标准前端工程,过程中遇到了不少麻烦,今天作为笔记一般记录一下遇到的问题和解决方案。

    • 基础环境

        手头一台Mac 使用OSX系统,IDE使用WebStorm,装好了npm

    • 安装过程

        因为没有很深厚的前端基础,所以学习时候采用create-react-app这个官方脚手架搭建,在此之前无论是windows,mac os,linux必须在bash中装有npm。

        本人在安装过程中发生灵异现象,安装create-react-app却无法在bash中使用。安装第一步就是在装有npm的bash中输入

    npm install -g create-react-app

        安装完成之后,一直显示command not found,不知道哪里配置出了问题。

        后来在网上找到一个解决方案,在user根目录下创建一个全局包,并把npm的全局命令设置为这个根目录,然后配置.bash_profile

        首先创建一个包含全局命令的文件夹

    mkdir 文件夹名字

        然后配置npm指向

    npm config set prefix ‘文件夹路径’

        然后配置user根目录~下的.bash_profile

    export PATH=文件夹路径:$PATH

       接着如果还是not found 就在安装一次,之后检查文件夹有否生成内容,我到此步已经成功装上。然后到你的js工作目录下,创建React项目。

    create-react-app 项目名

       之后会生成一个标准的react项目

       启动就好,启动命令

    npm start

    • Just go into it

         

        打开index.html,发现它只有一个标签root,而所有的布局和组件全由ReactJS完成。

    import React from 'react';
    import ReactDOM from 'react-dom';
    import './index.css';
    import App from './App';
    import registerServiceWorker from './registerServiceWorker';
    
    ReactDOM.render(<App />, document.getElementById('root'));
    registerServiceWorker();

        乍一看,宛如Java代码一般。

        项目搭建已经完毕,可以尽情地在JSX的世界中surfing(浪)了,可以预见前面还有很多坑。

    • 熟悉React组件开发模式

        12月16日添加

        新前端框架享誉盛名的组件化,今日初探,特地记录一下。

        一般React项目只有一个标签,并根据此标签不断的进行拓展,根据Class的组合组成新的页面。

        最基础的是Index

    import React from 'react';
    import ReactDOM from 'react-dom';
    import './index.css';
    import App from './App';
    
    import registerServiceWorker from './registerServiceWorker';
    
    ReactDOM.render(
        <App />
        , document.getElementById('root'));
    registerServiceWorker();

        它的页面构造是由App这个标签来拓展的,仔细观察可以看到这个App很像是Java的对象。我们进入App.js查看。

    import React, { Component } from 'react';
    import './App.css';
    import Button1 from './Button1'
    import Button2 from './Button2'
    class App extends Component {
        const
        render() {
            return (
                <div className="App">
                    <h1>hello world</h1>
                    <div>
                        <Button1/><Button2/>
                    </div>
                </div>
            );
        }
    }
    export default App;

        我将App这个class的render方法改写,嵌入了两个按钮。在最后一行export一个default名字,就像一个单例模型返回对象一样,在index引入的时候使用这个默认的对象名,就可以使用这个组件了。而引入组件的时候,需要使用html的尖括号标签来“调用”对象。

        本次写了两个button Demo,点击之后alert一下,表示绑定了点击事件,它的构成和Java的class很像。在处理完组件逻辑之后,render一下生成一个视图。

    import React, { Component } from 'react';
    import './App.css';
    
    class Button1 extends React.Component{
        handleClick() {
            alert("this is btn1");
        }
        render() {
            return (
                <button className="btn1" onClick={this.handleClick}>
                    按钮1
                </button>
            );
        }
    }
    export default Button1;
    import React, { Component } from 'react';
    import './App.css';
    
    class Button2 extends Component{
        handleClick() {
            alert("this is btn2");
        }
        render() {
            return (
                <button className="btn2" onClick={this.handleClick}>
                    按钮2
                </button>
            );
        }
    }
    export default Button2;

        页面上的表现是这样的。css可以根据个人爱好调制。

        点击之后

         从此Demo和以往的页面构造知识联系起来,可以感悟到一些现代前端的代码设计思想。

    • 参考资料

        用Facebook的create-react-app快速构建React开发环境

          https://segmentfault.com/a/1190000006055973

        修复npm安装全局模块权限问题

          http://blog.csdn.net/gentlycare/article/details/51279529

  • 相关阅读:
    c# DataTable 转为 List 类型
    .net配置文件读取
    文件重命名(递归)
    sharepoint 网站创建
    Sharepoint添加顶部导航菜单
    .net sharepoint文档库操作
    c#下载共享文件夹下的文件并记录错误日志
    JS命名空间实例
    js时间处理函数
    模块
  • 原文地址:https://www.cnblogs.com/chentingk/p/8011953.html
Copyright © 2011-2022 走看看