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,如果有写的 ...
随机推荐
- WebApi接口访问异常问题。尝试创建“testController”类型的控制器时出错。请确保控制器具有无参数公共构造函数
本来运行的好好的webAPI 接口突然报了个 :“尝试创建“testController”类型的控制器时出错.请确保控制器具有无参数公共构造函数” 错误.耗了半宿最终解决了, 原因: api控制器中引 ...
- IT题库7-线程加锁
转载:http://www.cnblogs.com/linjiqin/p/3208843.html 一.同步问题提出 线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏.例如:两个线程T ...
- RSA 汇总
最近工作中遇到了RSA,这个,以前只是粗略的看了一下,结果,实际使用的时候,各种眼花缭乱啊.现在整理一下RSA有哪些相关知识. 1. RSA算法本身.算法本身的内容实际上是在pkcs#1的标准里面说明 ...
- 阿里云服务器ECS的环境部署和安装
1.进入产品 云服务 ECS 和 云空间选择, 我购买的是ECS,那么环境搭建都是需要自己动手实现的. 2. 选择创建一个实例 记得网络一定要选择 公用网络,主机地址选择选择国内. 3. 购买的时候 ...
- Django的安装和一些操作
1.安装 (1) 命令行: pip install django==1.11.18 pip install django==1.11.18 -i 源 (2) pycharm setting —> ...
- ansible-2.1.0.0_module
ansible --version ansible 2.1.0.0 config file = /home/onest/luoliyu/ceph-ansible/ansible.cfg configu ...
- JS对象格式化方法:pretty_format
/* * 格式化 * */ var pretty_format = function (obj, indent) { if (obj === null) return 'null'; if (obj ...
- JavaWeb案例:登陆和注册
mvc开发模式简介 M: Model模型 JavaBeanV:view视图 JSPC:Controller控制器 Servlet 其实就是JSP + Servlet + JavaBean上面的Java ...
- Codeforces Gym 101623A - 动态规划
题目传送门 传送门 题目大意 给定一个长度为$n$的序列,要求划分成最少的段数,然后将这些段排序使得新序列单调不减. 考虑将相邻的相等的数缩成一个数. 假设没有分成了$n$段,考虑最少能够减少多少划分 ...
- C# 将对应的xml文档赋值给指定模型(对象)
public static IList<T> XmlToEntityList<T>(string xml) where T : new() { ...