JSX学习整理

作者: 静简明 | 来源:发表于2018-05-27 17:59 被阅读0次

1 JSX语法

JSX是javascript的一种扩展,最终会编译成原生的javascript
JSX构建组建的规则和xhtml规则一致
  标签可以任意嵌套
  标签必须闭合


1.1JSX组件

html原生组件,如

function render() {
  return <h1>Hello World</h1>
}

React组件即自定义组件

class Hello extends React.Component {
  render() {
    return <h1>Hello World</h1>;
  }
}
function render() {
  return <div><Hello/></div>
}

注:
1.自定义组件首字母必须大写,否则解析时按照html原生标签解析,进而报错
2.React组件中必须只能存在一个根节点,不能存在并列根节点,如

function render() {
  // 错误
  return (
    <div></div>
    <div></div>
  )
}

1.2 JSX属性

定义属性的方式和html属性的方式一样,不同之处是采用驼峰形式,如

class Hello extends React.component {
  render() {
    return <h1 className="header">Hello World</h1>
  } 
}
function render() {
  return <div><Hello custProp="lalal"/></div>
}

注:
html原生的class样式必须写成className形式,因为JSX语法解析成js原生代码是碰到class会当成关键字处理,运行时报错


1.3 JSX处理js

JSX中可以使用{}包裹js的内容,并能够将js内容正确解析

function render() {
  const text="Hello World";
return <h1>{text}</h1>
}

上述代码将解析为<h1>Hello World</h1>

1.4 JSX注释

采用js的注释写法,需要加花括号

function render() {
  return <h1>
    {/*
       注释信息
    */}
  </h1>
}

1.5 JSX编译成js

<MyButton type="normal" data={22}>Btn</MyButton>

编译成

React.createElement({
  'MyButton',
  {type: "normal", data: 22},
  'Btn'
})

若为闭合元素,不存在子标签,则React.createElement方法的第三个参数为null

1.6 JSX命名空间(对JSX使用点语法)

若自定义组件中存在多个子组件是,可以采用这种方式获取子组件,如

const MyComponent = {
  DatePicker: function(props) {
    return <div> 当前日期:{props.currentYear}</div>
  }
}
function PickerContainer() {
  return <MyComponent.DatePicker currentDate = {new Date().getFullYear()} />
}

如antd中的menu组件

import {Menu} from 'antd';
const SubMenu = Menu.SubMenu

本文目的仅仅是为了个人查找阅读等提供方便

相关文章

  • JSX学习整理

    1 JSX语法 JSX是javascript的一种扩展,最终会编译成原生的javascriptJSX构建组建的规则...

  • 二、React小书学习摘记

    React.js 小书学习 之 【使用 JSX 描述 UI 信息】 从 JSX 到页面 过程图解:JSX 到页面过...

  • jsx学习

    性能提升 inline expansion应该用到了函数内联的知识 JSX boosts performance ...

  • sublime--InstallPackage时的错误There

    学习react之初,想要学习react推荐使用的jsx,在编辑器中支持jsx语法高亮,于是开始在sublime中安...

  • 学Vue,就要学会vue JSX(二)

    学习JSX,先了解一下createElement 提到JSX,不可避免的就要提到createElement,当你看...

  • react 学习笔记 使用 jsx 语法

    react 学习笔记 使用 jsx 语法 概念 JSX 是一种 JavaScript 的语法拓展。我们推荐 rea...

  • JSX初探

    最近在搞react的项目,学习过程中发现了JSX,决心研究一下到底是什么 什么是JSX JSX代表JavaScri...

  • JSX学习笔记

    简介 const element = Hello! JSX是一种JavaScript的语法扩展,看起来像是模板语...

  • 学习笔记《JSX》

    JSX 可以被视为一种 JS 的模板语言,形如: 使用引号来表示 JS 代码: 如果是多行的话,可以加一个括号: ...

  • JSX学习笔记

    这个有趣的标签语法既不是字符串也不是 HTML。它被称为 JSX,是一个 JavaScript 的语法扩展。我们建...

网友评论

    本文标题:JSX学习整理

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