栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

扩展React.js组件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

扩展React.js组件

要获得类似于继承的内容(实际上是注释中指出的 组成
),可以

Airplane
在示例中将本身包装为
Vehicle
。如果要
Vehicle
Airplane
组件中公开方法,则可以使用ref并将它们一对一连接。这并不完全是继承(实际上是 composition
),尤其是因为
this.refs.vehicle
在组件安装之后才能访问。

var Vehicle = React.createClass({    ...});var Airplane = React.createClass({    methodA: function() {      if (this.refs != null) return this.refs.vehicle.methodA();    },    ...    render: function() {        return ( <Vehicle ref="vehicle">     <h1>J/K I'm an airplane</h1> </Vehicle>        );    }});

另外值得一提的是,在React官方文档中,他们更喜欢组合而不是继承:

那么继承呢?在Facebook,我们在成千上万的组件中使用React,但还没有发现建议创建组件继承层次结构的用例。

道具和组合为您提供了以显式且安全的方式自定义组件外观和行为所需的所有灵活性。请记住,组件可以接受任意道具,包括原始值,React元素或函数。

如果要在组件之间重用非UI功能,建议将其提取到单独的Javascript模块中。组件可以导入它并使用该函数,对象或类,而无需对其进行扩展。

值得一提的另一件事是,使用ES2015 / ES6 +,您还可以将对象道具从

Airplane
组件传播到
Vehicle
组件

render: function() {    return (        <Vehicle {...this.props}> <h1>J/K I'm an airplane</h1>        </Vehicle>    );}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/637305.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号