前端 React 使用 ES6 类和 JSX

使用 ES6 类

在 react 中可以使用传统的 js 语法,也可以使用 ES6 的类将松散的结构组件进行封装,这样可以项目组件化。每一个 react 的组件都是一个 React.Componet 的 ES6 类,所以需要继承 Component类 。例如,现在我们要写一个 Hello 的组件,使用这个组件输出一个 hello world 的标题。可以这样做:


    

这样如果要使用这个组件直接在需要的地方写上这个类的标签就好:

ReactDOM.render(
    
test
, document.getElementById('example') );

在使用这个标签的时候,很多时候,需要根据很多情况给这个标签传一些参数,让这个标签可以根据传递的参数进行一些判断或者输出。
这个时候需要使用 props 这个变量。在类中使用这个变量相当于使用父类的这个变量,具体可以看到 React 源码中的这条语句:

readonly props: Readonly

& Readonly<{ children?: ReactNode }>;

所以在使用的时候,应该这样写: this.props

class Hello extends React.Component {
    render() {
        return (
            

hello world

{this.props.text}

) } }

这样在标签中使用 text 这个属性的时候,就可以将 text 属性的内容显示在下面的 p 标签中了。

ReactDOM.render(
    
test
, document.getElementById('example') );

效果如下


使用 JSX

在react中,使用了JSX代替了传统的JavaScript。
怎么说 JSX 呢,JSX 就是 HTML 和 JS 和混合版,JSX 会将一个包裹好的 HTML 元素当做变量类型。

const text = 

hello

这样的标签语法就称为 JSX,这样的一个标签元素也可以做为 React 中的 ReactNode 类型。在 JSX 中可以使用 JS 的表达式。例如:

const text = 

hello, {1+2}

这里的显示结果为 hello,3 。而 JAX 文件中不能使用 if else 语句,只能使用表达式,所以三元运算符是可以使用的。
对于一个 JSX ,我们也可以将这个 JSX 写成在独立的 js 文件中,使用的时候引入。也可以在工程化组件化中,写成一个 .jsx 文件, import 后使用。

你可能感兴趣的:(前端 React 使用 ES6 类和 JSX)