美文网首页
React 的体验

React 的体验

作者: owant | 来源:发表于2019-05-17 15:00 被阅读0次

React 的体验

已经使用React js 有两年了。最近想了一下,这个React JS 有什么是自己发现了的特色之处呢?

this的问题

在使用ReactJS的时候发现this是一个非常有意思的东西,在class里面this是组件的本身。但是在函数的时候发现这个this就莫名其妙的undefined了。而且this的变量和函数有时候会冲突。如下代码

import React, { Component } from "react"

export default class MyComponent extends Component {

    constructor(props) {
        super(props);
        this.name="hello"
        this.getName="hhh"
    }

    getName=()=>{
        return "getName"
    }

    render(){
        return (
            <div>
               <li>{this.name}</li>
               <button onClick={()=>{
                   this.getName();
                   alert("hello");
               }}>click</button>
            </div>
        );
    }

}

其中的 this.getName="hhh"把原来的Function getName()重新赋值了。一个解决方法就是代码规范去解决,对于函数使用_function_name来命名

继承和组合问题

React的代码基本是组合大于继承了,因为基本是组件化。为何是组件化大于继承的呢,因为组件强调的是props的,而且使用继承会导致之前的this问题,因为如果子类中也有this.state={}的语句会把父类的state覆盖掉,当然编程思想里面也有组合优于继承的说法。代码如下

父类的name

import React, { Component } from "react"

export default class Father extends Component {
    constructor(props) {
        super(props);

        this.state = ({
            name: "father"
        });
    }

    render() {
        return <div>
            {this.state.name}
        </div>
    }
}

子类继承了Father。

import Father from "./Father"

export default class Son extends Father {
    constructor(props) {
        super(props);

        this.state = ({
            sonName: "son",
            name:"som change"
        });
    }
}

把name改变了,悲剧的是如果子类的改为this.state = ({ sonName: "son"}),会把父类的name置空了。因为this.state重新赋值了。


image.png

JSON和Object

JSON和Object是等价。也可以说是JSON是一个Object,所以json持有一个Function这个写法体现了巨大的语法优势。我们知道如果再C语言中有一种指针是函数指针,用于调用函数,在React中这个的实现开销更低了而且易于理解。

相关文章

  • react native 探索(一)

    为什么使用react native? 既拥有Native的用户体验、又保留React的开发效率。——引自React...

  • React 的体验

    React 的体验 已经使用React js 有两年了。最近想了一下,这个React JS 有什么是自己发现了的特...

  • React入门学习

    为了获得更好的阅读体验,请访问原地址:传送门 一、React 简介 React 是什么 React 是一个起源于 ...

  • 关于 React Router 页面刷新 404

    1. 背景 团队的前端使用 React + React Router 开发单页应用(SPA),特别影响用户体验的一...

  • react native中文视频教程

    react Native的设计理念: 既拥有Native的用户体验、又保留React的开发效率。这个理念似乎迎合了...

  • react native中文视频教程

    react Native的设计理念: 既拥有Native的用户体验、又保留React的开发效率。这个理念似乎迎合了...

  • React Native之路(一)Windows下安装配置

    最近开始学习React native,不得不说React native真的是非常强大啊,体验以及流畅度真是没的说,...

  • BizCharts-Chart(父组件)

    基于 G2 的 React 版本封装,使用体验更符合 React 技术栈的习惯,他们都与 AntV 有着紧密的协同...

  • React Native For Android初体验

    React Native For Android初体验 @author ASCE1885的 Github 简书 ...

  • React 生态之 Redux

    Redux 初体验 通常会将 Redux 和 React 联系到一起,但是 Redux 不是寄生于 React 上...

网友评论

      本文标题:React 的体验

      本文链接:https://www.haomeiwen.com/subject/oizyhxtx.html