React文档(二十三)Web Components
React和web components是为了解决不同问题而创立的。web components为可重用组件提供了健壮的封装,而React提供了声明式的库来保持DOM和数据同步。这两点是互相补充的。作为一个开发者,你可以自由地在你的web components里使用React,或者在React里使用web components,或者两者同时使用。
很多人使用React而不使用web components,但是你也许想要试一试,特别是如果你在使用依靠web components开发的第三方UI组件。
在React里使用web components
class HelloMessage extends React.Component {
render() {
return <div>Hello <x-search>{this.props.name}</x-search>!</div>;
}
}
注意:
web components经常对实例暴露一个重要的接口,一个video web component也许会暴露play()和pause()函数。想要访问web component的接口,你将需要使用一个ref去与DOM节点直接交互。如果你使用第三方的web components,最好的解决方案就是写一个React组件来包裹web component。
web components发出的事件也许不能正确地在React渲染树里传递。你将需要手动附加上事件处理器去处理这些事件在你的React组件里。
有一个混淆就是web component使用class而不是className。
function BrickFlipbox() {
return (
<brick-flipbox class="demo">
<div>front</div>
<div>back</div>
</brick-flipbox>
);
}
在web component里使用React
const proto = Object.create(HTMLElement.prototype, {
attachedCallback: {
value: function() {
const mountPoint = document.createElement('span');
this.createShadowRoot().appendChild(mountPoint);
const name = this.getAttribute('name');
const url = 'https://www.google.com/search?q=' + encodeURIComponent(name);
ReactDOM.render(<a href={url}>{name}</a>, mountPoint);
}
}
});
document.registerElement('x-search', {prototype: proto});
你也可以看看这个链接完整的web component例子。
React文档(二十三)Web Components的更多相关文章
- React文档(十三)思考React
在我们的看来,React是使用js创建大型快速网站应用的首要方法.它在Facebook和Instagram的使用已经为我们展现了它自己. React的一个很好的地方就在于当你创建应用的时候它使你思考如 ...
- ngrok首页、文档和下载 - Web服务安全通道 - 开源中国社区
ngrok首页.文档和下载 - Web服务安全通道 - 开源中国社区 Web服务安全通道 ngrok 编辑/纠错 分享到 新浪微博腾讯微博 已用 +0 收藏 ...
- iis设置默认文档,提示web.config配置xml格式不正确
网站上传后,配置默认文档,提示web.config配置xml格式不正确,几经尝试,发现是sqlserver密码中的“&”符号惹的祸,web.config文件中不能使用该字符.分享出来,大家遇到 ...
- 【转】(五)unity4.6Ugui中文教程文档-------概要-UGUI Interaction Components
原创至上,移步请戳:(五)unity4.6Ugui中文教程文档-------概要-UGUI Interaction Components 4.Interaction Components 本节涵盖了处 ...
- 【转】(四)unity4.6Ugui中文教程文档-------概要-UGUI Visual Components
原创至上,移步请戳:(四)unity4.6Ugui中文教程文档-------概要-UGUI Visual Components 3.Visual Components 有新的组件和游戏对象已添加到uG ...
- React文档(二十四)高阶组件
高阶组件(HOC)是React里的高级技术为了应对重用组件的逻辑.HOCs本质上不是React API的一部分.它是从React的组合性质中显露出来的模式. 具体来说,一个高阶组件就是一个获取一个组件 ...
- web开发规范文档二
头部 header\hd 内容块 content\con\bd text txt title 尾部 footer 导航 nav\menu sub-n ...
- Web API 自动生成帮助文档并使用Web API Test Client 测试
之前在项目中有用到webapi对外提供接口,发现在项目中有根据webapi的方法和注释自动生成帮助文档,还可以测试webapi方法,功能很是强大,现拿出来与大家分享一下. 先看一下生成的webapi文 ...
- react文档demo实现输入展示搜索结果列表
文档页面地址:https://doc.react-china.org/docs/thinking-in-react.html 该文档只给了具体实现思路,下面是我实现的代码. 初学react,如果有写的 ...
随机推荐
- javascript学习-基本类型
javascript学习-基本类型 1.概述 javascript的数据类型大体上分两种:基本类型和对象类型.简单的区分就是基本类型是无法再分的原子级类型:对象类型是容器,可以容纳基本类型和对象类型. ...
- C# 截取两个字符串中间的子字符串
/// <summary> /// 截取中间字符 /// </summary> /// <param name="text">全字符串</ ...
- sql sugar
事务 using (var db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.xxx, DbType ...
- angular4 使用swiper 首次加载问题(一)
angular 在使用外部插件swiper 还是有不少小坑的,下面来聊一聊.angular在使用swiper 的一些坑 一开始觉得使用外部引入的方式比较好,就在外部定义了.简单快捷方便, 但是在开发后 ...
- 保存配置,获取配置,XML
private void SaveSOConfig() { //保存配置 Dictionary<string, string> PrintConfigDIC = new Dictionar ...
- BUAA Summer Practice 2017 #1 字符串专场
https://vjudge.net/contest/262753#overview C - Regular Number HDU - 5972 bitset temp, temp[i]=1表示 此前 ...
- WdatePicker 日期区间设置
<input id="billsStartDate" name="billsStartDate" onclick="WdatePicker({d ...
- Porsche Piwis Tester II V15.6 with CF30 Laptop or Lenovo E49AL Laptop
Some of my customers let me recommended which auto diagnostic tool is good for Porsche , I recommend ...
- LINUX 编程定位工具gstack,pstack
pstack: pstack命令可显示每个进程的栈跟踪. pstack 命令必须由相应进程的属主或 root 运行. 可以使用 pstack 来确定进程挂起的位置. 此命令允许使用的唯一选项是要检查的 ...
- [Python数据挖掘]第8章、中医证型关联规则挖掘
一.背景和挖掘目标 二.分析方法与过程 1.数据获取 2.数据预处理 1.筛选有效问卷(根据表8-6的标准) 共发放1253份问卷,其中有效问卷数为930 2.属性规约 3.数据变换 ''' 聚类 ...