博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React学习(11)—— 高阶应用:Web组件
阅读量:7173 次
发布时间:2019-06-29

本文共 1460 字,大约阅读时间需要 4 分钟。

  hot3.png

Web组件

从概念上说,React 和  分别用于解决不同的问题。Web组件提供了强大的封装特性来支持其可重复使用性,而React提供了一系列声明性(declarative)接口保证Dom结构和数据同步。但是某些时候这2个目标是互补的。对于开发人员来说将React用于Web组件、或将Web组件用于React、或2者皆有并非难事。

虽然大部分使用React的开发人员并不需要使用Web组件,但是在某些情况,特别是引入了某些第三方库,还是需要使用到相关机制。

在React中使用Web组件

class HelloMessage extends React.Component {  render() {    return 
Hello
{this.props.name}
!
; }}

Web组件常会暴露一些必要的API接口,例如一个 video Web组件可能会暴露  play() 和 pause() 方法。为了获取Web组件暴露的这些API接口,需要在React编码使用Refs特性来直接获取真实的Dom节点。如果引入第三方的Web组件,最好的解决方案使用一个React组件来包装引入的Web组件并最终作为一个React组件来使用。

由第三方Web组件触发的事件也许并不能通过React的渲染树传递,此时需要在组件中去手工的触发事件。 

一个经常导致混乱的地方是,Web组件使用的是“class”而React使用的是“className”,例如:

function BrickFlipbox() {  return (    
front
back
);}

在Web组件中使用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({name}, mountPoint);    }  }});document.registerElement('x-search', {prototype: proto});

React整合Jquery这一类直接操作Dom的技术

React在发生真实Dom渲染之前都会先产生与之对应的虚拟Dom结构,然后再“合适”的时候将虚拟Dom的内容渲染到真实Dom上,完成渲染之后componentDidMount会被调用。Jquery这一类真实Dom的操作技术投入实际使用时最好在componentDidMount中使用,然后保证这个组件不会的虚拟Dom不发生任何改变。

转载于:https://my.oschina.net/chkui/blog/876938

你可能感兴趣的文章
利用bat批处理做启动mongodb脚本
查看>>
C#中一道关于多线程的基础练习题——模拟仓库存销过程
查看>>
杭州驾校模拟考试
查看>>
qmake的使用
查看>>
MySql 命令行
查看>>
浅谈移动端开发页面
查看>>
让你提前知道软件开发(24):C语言和主要特征的历史
查看>>
启动weblogic11g一直提示<141281> <unable to get file lock, will retry ...>
查看>>
UVA 12898 And Or 数学暴力
查看>>
Windows 8(虚拟机环境)安装.NET Framework3.5(includes .NET 2.0 and 3.0)
查看>>
萧墙HTML5手机发展之路(53)——jQueryMobile页面之间的参数传递
查看>>
社会保障系列1《介绍》
查看>>
Windows10开发手记-Windows App Certification Kit使用教程
查看>>
iOS开发网络篇—NSURLConnection基本使用(二)
查看>>
事件引入和本质
查看>>
Java:IO流的综合用法(从键盘录入数据并打印在控制台上)
查看>>
只允许输入数字和小数点
查看>>
快速排序(五)
查看>>
ASP.NET MVC 中将FormCollection与实体间转换方法 (转)
查看>>
至linuxNIC添加多个IP
查看>>