是否可以在 React 中使用 Polymer?

IT技术 html polymer reactjs
2021-05-16 14:17:25

我一直在使用 React 并希望在 React 中使用 Polymer 标签。React 不识别 Polymer 标签,因为 React 只处理基本的 DOM 标签。有没有办法将 Polymer 标签添加到 React DOM 库?

4个回答

对的,这是可能的。

  1. 创建聚合物元素。

    <link rel="import" href="../../bower_components/polymer/polymer.html">
    
    Polymer({
        is: 'calender-element',
        ready: function(){
            this.textContent = "I am a calender";
        }
    });
    
  2. 通过在 html 页面中导入聚合物组件,使其成为 html 标签。例如,将它导入到您的 React 应用程序的 index.html 中。

    <link rel="import" href="./src/polymer-components/calender-element.html">
    
  3. 在 jsx 文件中使用该元素。

    'use strict';
    
    import React from 'react';
    
    class MyComponent extends React.Component{
        render(){
            return (
                <calender-element></calender-element>
            );
        }
    }
    
    export default MyComponent;
    

是否可以在 React 中使用 Polymer?

简短的回答:不是。

长答案:有点。您必须创建直接创建节点和操作属性的组件。对于元素的子元素等,还有其他考虑因素。

是否可以在 Polymer 内部使用 React?

这种方式的答案几乎相同,您必须将 React 组件包装在聚合物元素中。

为什么?

Polymer(基于 Web 组件)和 React(一个 ui 组件库)都基于“组件”。因为在 web 中没有单一的方式来表达一个组件,所以你需要在各种库之间架起桥梁。这同样适用于关于“以角度react”、“react中的 jquery 插件”、“jquery 插件中的淘汰赛”、“在主干中react”、“与使用主干的聚合物元素并与使用角度的聚合物元素react的角度”的问题, 等等。

在 angular withpolymer 之类的情况下,您可能会认为它非常简单,但 Polymer 不知道评估 angular 表达式或任何类型的声明性回调。几乎在每种情况下你都需要一座桥,而且它们从来都不漂亮。

这是一个相当古老的问题,但https://www.npmjs.com/package/react-polymer怎么样这不是react聚合物组分的支持吗?

import reactPolymer from 'react-polymer'; //IMPORTANT: Must be imported before React.
import React from 'react';

reactPolymer.registerAttribute('raised');
reactPolymer.registerAttribute('url');
reactPolymer.registerEvent('response', 'onResponse');


<paper-button raised>another button</paper-button>
<iron-ajax url="http://example.com/" onResponse={this.handleResponse} />

根据react和聚合物的当前阶段回答

由于这个问题是在不久前提出的,并且从那时起发生了很多变化,我想补充一点,您现在可以直接在 react 中使用聚合物元素,但是对于您的自定义属性和事件,它会导致问题,可以通过使用react轻松处理-polymer,它支持几乎所有元素,gold-*元素除外

为什么要在 React 中使用 Polymer?

  1. 它可以进一步简化您的开发过程或使其变得一团糟。这取决于你如何使用它
  2. 聚合物组件提供的开发速度和易用性是无与伦比的。
  3. React 可以进一步将包含聚合物组件的组件分解成可管理的部分。
  4. 仅仅因为,react 和 JSX 就是爱。
  5. 嘿,为什么不呢??