【发布时间】:2018-07-30 17:18:50
【问题描述】:
我是Polymer 3.0 世界的新手,我认为它有很大的潜力。
我按照这里指出的教程进行操作:
https://www.polymer-project.org/3.0/start/first-element/intro
这是最终的结果:
demo-element.js
import { PolymerElement, html } from '@polymer/polymer/polymer-element.js';
import '@polymer/iron-icons/iron-icons.js';
import '../icon-toggle.js';
class DemoElement extends PolymerElement {
static get template() {
return html`
<style>
:host {
font-family: sans-serif;
--icon-toggle-color: lightgrey;
--icon-toggle-outline-color: black;
--icon-toggle-pressed-color: red;
}
</style>
<h3>Statically-configured icon-toggles</h3>
<icon-toggle toggle-icon="star"></icon-toggle>
<icon-toggle toggle-icon="star" pressed></icon-toggle>
<h3>Data-bound icon-toggle</h3>
<!-- use a computed binding to generate the message -->
<div><span>[[_message(isFav)]]</span></div>
<!-- curly brackets ({{}}} allow two-way binding -->
<icon-toggle toggle-icon="favorite" pressed="{{isFav}}"></icon-toggle>
`;
}
_message(fav) {
if (fav) {
return 'You really like me!';
}
else {
return 'Do you like me?';
}
}
}
customElements.define('demo-element', DemoElement);
index.html
<!DOCTYPE html>
<html>
<head>
<script src="../node_modules/@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
<script type="module" src="demo-element.js"></script>
<custom-style>
<style>
/* Define a document-wide default */
html {
--icon-toggle-outline-color: red;
}
/* Overrides the value specified inside demo/demo-element.js */
demo-element {
--icon-toggle-pressed-color: blue;
}
/* This rule does not work! */
body {
--icon-toggle-color: purple;
}
</style>
</custom-style>
</head>
<body>
<demo-element></demo-element>
</body>
</html>
但我的问题是:
Polymer 是否允许我按照以下方式单独构建自定义元素
(使用下面的pseudo-code):
page.html
<html>
<head>
<script src="whatever-general-polymer-script.js"></script>
<script src="component1-specific-script.js"></script>
<script src="component2-specific-script.js"></script>
</head>
<body>
<my-component1></my-component1>
<my-component2></my-component2>
</body>
</html>
所以我可以单独构建Polymer 元素,并通过导入正确的Javascript 文件并使用相应的自定义标签来根据需要使用它们。
或
Polymer 是否只允许我在它们构建的应用程序中使用我的自定义元素,例如:
<html>
<head>
<script src="whatever-general-polymer-script.js"></script>
<script src="components-bundle-script.js"></script>
</head>
<body>
<my-component1></my-component1>
<my-component2></my-component2>
</body>
</html>
谢谢!
【问题讨论】:
标签: javascript html dom polymer web-component