温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

React.createElement方法怎么使用

发布时间:2022-04-20 15:57:18 来源:亿速云 阅读:503 作者:iii 栏目:大数据

这篇文章主要介绍“React.createElement方法怎么使用”,在日常操作中,相信很多人在React.createElement方法怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”React.createElement方法怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

React.createElement

首先我们看官方给出的解释

ReactElement createElement(
  string/ReactClass type,
  [object props],
  [children ...]
)

React.createElement方法创建并返回一个给定类型的ReactElement元素。type参数可以是一个html标签名称字符串,也可以是一个ReactClasss。这个type参数对于createElement来说是必须的。第二个参数是该标签的属性,这个参数是可选的。第三个参数是该元素的子节点,同样也是可选的。

下面我们分别就第一个参数类型来做简单的介绍。

type参数 为html标签名称

type参数可以是一个html标签名称,也可以是一个ReactClass。首先我们看使用html标签的例子。这个例子来自官网,接下来所有的例子都是围绕这个例子进行改写。

例一

var child1 = React.createElement('li', null, 'First Text Content');
var child2 = React.createElement('li', null, 'Second Text Content');
var child3 = React.createElement('li', null, 'Third Text Content');
var root = React.createElement('ul', { className: 'my-list' }, child1, child2, child3);
ReactDOM.render(
        root,
        document.getElementById('content')
);

这个例子很简单,第一个参数是html标签的名称ul和li。我们看前三个createElement的第二个参数和第三个参数,因为上面不需要第二个参数,但是需要有第三个参数作为li的文本内容,也就是li的子内容,所以第二个参数赋值为null。

但是对于创建ul元素的createElement方法来说,同样第一个参数是html标签名称ul,第二个参数是一个props对象{ className: 'my-list'}。当然这里我们也可以添加其他的属性例如{ className: 'my-list', name:’ulname’}。这些属性可以通过this.props.name来调用。但是奇怪的是第二个参数以后有多个参数,这怎么解释。是不是createElement不止三个参数,从第二个参数往后,该节点有多少个子节点那就有多少个参数。可以这么认为,但是我们对上面的例子稍加改造就可以看出其实说createElement有三个参数也没有问题。

例二

var child1 = React.createElement('li', null, 'First Text Content');
var child2 = React.createElement('li', null, 'Second Text Content');
var child3 = React.createElement('li', null, 'Third Text Content');
var root = React.createElement('ul', { className: 'my-list' }, [child1, child2, child3]);
ReactDOM.render(
        root,
        document.getElementById('content')
);

我们将第二个参数以后的参数都放在数组里,这样就可以认为第三个参数是一个数组,数组中的元素就是该节点的所有子节点。

从这我们可以看出其实React的使用非常的灵活。

type参数 为ReactClass

我们看上面的例子,type参数为html标签名称。使用方法其实挺简单的,需要注意的是第二个参数和第三个参数。下面我们来看一下type类型为ReactClass的使用方法。

例三

var cli = React.createClass({
    render:function(){
        return (
                <li>
                {this.props.text}
                </li>
        )
    }
})
var child1 = React.createElement(cli, {key:'F',text:'First Text Content'});
var child2 = React.createElement(cli, {key:'S',text:'Second Text Content'});
var child3 = React.createElement(cli, {key:'T',text:'Third Text Content'});
var root = React.createElement('ul', { className: 'my-list' }, [child1, child2, child3]);
ReactDOM.render(
        root,
        document.getElementById('content')
);

在这里我们看第一个参数cli就是createClass的返回值。需要注意的是,对于前三个li的createElement第二个参数要加上key:&rsquo;value&rsquo; 这里的value彼此都不相同,如果不指定此属性&mdash;&mdash;虽然也能按照逻辑正常显示&mdash;&mdash;会报如下的警告

Warning: Each child in an array or iterator should have a unique "key" prop. Check the top-level render call using <ul>. See https://fb.me/react-warning-keys for more information.

当然如果上述例子中我们只创建了一个li元素,没有child2和child3,只有child1,那第二个参数的key属性也得指定,否则同样也是会报如上的警告。

对于例三我们也可以进行如下的改写

例四

var cli = React.createClass({
    render:function(){
        return (
                <li>
                {this.props.children}
                </li>
        )
    }
})
var child1 = React.createElement(cli, {key:'F'},'First Text Content');
var child2 = React.createElement(cli, {key:'S'},'Second Text Content');
var child3 = React.createElement(cli, {key:'T'},'Third Text Content');
var root = React.createElement('ul', { className: 'my-list' }, [child1, child2, child3]);
ReactDOM.render(
        root,
        document.getElementById('content')
);

同样在createElement中指定第三个参数,在createClass中使用this.props.children进行引用。

上面就是React.createElement的使用方法,可以看出其使用方式非常灵活,在实际生产中我们应该选择适合于自己的方式方便快捷的进行开发。

到此,关于“React.createElement方法怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI