JSX本质

2021-01-25 14:12

阅读:484

标签:lda   raw   position   sed   bsp   end   变量   node   ops   

1.JSX的使用

class JSXBaseDemo extends React.Component {
    constructor(props) {
        super(props)
        this.state = {
            name: ‘xiaoming‘,
            imgUrl: ‘https://img1.mukewang.com/5a9fc8070001a82402060220-140-140.jpg‘,
            flag: true
        }
    }
    render() {
        // 获取变量 插值
        const pElem = 

{this.state.name}

return pElem // 表达式 const exprElem =

{this.state.flag ? ‘yes‘ : ‘no‘}

return exprElem // 子元素 const imgElem =

我的头像

this.state.imgUrl}/>
return imgElem // class const classElem =

设置 css class

return classElem // style const styleData = { fontSize: ‘30px‘, color: ‘blue‘ } const styleElem =

设置 style

// 内联写法,注意 {{ 和 }} // const styleElem =

设置 style

return styleElem // 原生 html const rawHtml = ‘富文本内容斜体加粗 const rawHtmlData = { __html: rawHtml // 注意,必须是这种格式 } const rawHtmlElem =

{rawHtml}

return rawHtmlElem // 加载组件 const componentElem =

JSX 中加载一个组件


return componentElem } } export default JSXBaseDemo

2. JSX最终出来的是什么,是通过React.createElement函数来实现的,它的参数是怎么样的,最终返回的结果是什么,最终通过patch来渲染

                通过React.createElement即h函数,返回vnode
                第一个参数可能是元素,也可能是组件,通过 组件的首字母一定是大写来区分(react规定)

                React.createElement(‘div‘,null,child1,child2,child3)
                React.createElement(‘div‘,null,[child1,child2,child3])
                React.createElement(‘List‘,null,child1,child2,"文本节点")
 

JSX本质

标签:lda   raw   position   sed   bsp   end   变量   node   ops   

原文地址:https://www.cnblogs.com/zhuMother/p/13236095.html


评论


亲,登录后才可以留言!