tab to 2 space

This commit is contained in:
dntzhang 2018-10-25 21:30:18 +08:00
parent b322858314
commit bd88ba5662
14 changed files with 255 additions and 253 deletions

View File

@ -7,7 +7,7 @@ charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[{package.json,.*rc,*.yml,*.md}]
[{package.json,.*rc,*.yml,*.md,*.js,*.ts}]
indent_style = space
indent_size = 2

View File

@ -7,6 +7,7 @@
}
},
"rules": {
"semi": [1, "never"]
"semi": [1, "never"],
"indent": ["error", 2]
}
}

View File

@ -35,11 +35,11 @@
- [一个 HTML 完全上手](#一个-html-完全上手)
- [快速入门](#快速入门)
- [安装](#安装)
- [Hello Element](#hello-element)
- [TodoApp](#todoapp)
- [Store](#store)
- [生命周期](#生命周期)
- [安装](#安装)
- [Hello Element](#hello-element)
- [TodoApp](#todoapp)
- [Store](#store)
- [生命周期](#生命周期)
- [生态](#生态)
- [调试工具](#调试工具)
- [Omi Mobx](#omi-mobx)
@ -326,7 +326,7 @@ class TodoApp extends WeElement {
id: Date.now()
})
this.data.text = '';
this.update()
this.update()
}
}

280
README.md
View File

@ -36,12 +36,12 @@ On the left is Omi, the right side is React, and Omi uses Shadow DOM based style
- [Why Omi?](#why-omi)
- [Add Omi in One Minute](#add-omi-in-one-minute)
- [Getting Started](#getting-started)
- [Install](#install)
- [Hello Element](#hello-element)
- [TodoApp](#todoapp)
- [Store](#store)
- [Summary](#summary)
- [Lifecycle](#lifecycle)
- [Install](#install)
- [Hello Element](#hello-element)
- [TodoApp](#todoapp)
- [Store](#store)
- [Summary](#summary)
- [Lifecycle](#lifecycle)
- [Component Ecosystem](#component-ecosystem)
- [Debugging](#debugging)
- [Omi Mobx](#omi-mobx)
@ -107,7 +107,7 @@ You can also use `like-button` tag directly in HTML
```jsx
<body>
<like-button />
<like-button />
</body>
```
@ -158,28 +158,28 @@ import { tag, WeElement, render } from "omi";
@tag("hello-element")
class HelloElement extends WeElement {
onClick = evt => {
// trigger CustomEvent
this.fire("abc", { name: "dntzhang", age: 12 });
evt.stopPropagation();
};
onClick = evt => {
// trigger CustomEvent
this.fire("abc", { name: "dntzhang", age: 12 });
evt.stopPropagation();
};
css() {
return `
css() {
return `
div {
color: red;
cursor: pointer;
}`;
}
}
render(props) {
return (
<div onClick={this.onClick}>
Hello {props.msg} {props.propFromParent}
<div>Click Me!</div>
</div>
);
}
render(props) {
return (
<div onClick={this.onClick}>
Hello {props.msg} {props.propFromParent}
<div>Click Me!</div>
</div>
);
}
}
```
@ -191,36 +191,36 @@ import "./hello-element";
@tag("my-app")
class MyApp extends WeElement {
static get data() {
return { abc: "", passToChild: "" };
}
static get data() {
return { abc: "", passToChild: "" };
}
// bind CustomEvent
onAbc = evt => {
// get evt data by evt.detail
this.data.abc = ` by ${evt.detail.name}`;
this.update();
};
// bind CustomEvent
onAbc = evt => {
// get evt data by evt.detail
this.data.abc = ` by ${evt.detail.name}`;
this.update();
};
css() {
return `
css() {
return `
div {
color: green;
}`;
}
}
render(props, data) {
return (
<div>
Hello {props.name} {data.abc}
<hello-element
onAbc={this.onAbc}
prop-from-parent={data.passToChild}
msg="WeElement"
/>
</div>
);
}
render(props, data) {
return (
<div>
Hello {props.name} {data.abc}
<hello-element
onAbc={this.onAbc}
prop-from-parent={data.passToChild}
msg="WeElement"
/>
</div>
);
}
}
render(<my-app name="Omi v4.0" />, "body");
@ -230,7 +230,7 @@ Tell Babel to transform JSX into `Omi.h()` call:
```json
{
"presets": ["env", "omi"]
"presets": ["env", "omi"]
}
```
@ -282,57 +282,57 @@ import { tag, WeElement, render } from "omi";
@tag("todo-list")
class TodoList extends WeElement {
render(props) {
return (
<ul>
{props.items.map(item => (
<li key={item.id}>{item.text}</li>
))}
</ul>
);
}
render(props) {
return (
<ul>
{props.items.map(item => (
<li key={item.id}>{item.text}</li>
))}
</ul>
);
}
}
@tag("todo-app")
class TodoApp extends WeElement {
static get data() {
return { items: [], text: "" };
}
static get data() {
return { items: [], text: "" };
}
render() {
return (
<div>
<h3>TODO</h3>
<todo-list items={this.data.items} />
<form onSubmit={this.handleSubmit}>
<input
id="new-todo"
onChange={this.handleChange}
value={this.data.text}
/>
<button>Add #{this.data.items.length + 1}</button>
</form>
</div>
);
}
render() {
return (
<div>
<h3>TODO</h3>
<todo-list items={this.data.items} />
<form onSubmit={this.handleSubmit}>
<input
id="new-todo"
onChange={this.handleChange}
value={this.data.text}
/>
<button>Add #{this.data.items.length + 1}</button>
</form>
</div>
);
}
handleChange = e => {
this.data.text = e.target.value;
};
handleChange = e => {
this.data.text = e.target.value;
};
handleSubmit = e => {
e.preventDefault();
if (!this.data.text.trim().length) {
return;
}
handleSubmit = e => {
e.preventDefault();
if (!this.data.text.trim().length) {
return;
}
this.data.items.push({
text: this.data.text,
id: Date.now()
});
this.data.text = "";
this.update();
};
this.data.items.push({
text: this.data.text,
id: Date.now()
});
this.data.text = "";
this.update();
};
}
render(<todo-app />, "body");
@ -344,30 +344,30 @@ Say goodbye to `this.update` method when using store system! It will automatical
```js
export default {
data: {
items: [],
text: "",
firstName: "dnt",
lastName: "zhang",
fullName: function() {
return this.firstName + this.lastName;
},
globalPropTest: "abc", // Change it will refresh all elements without changing the components and page declaring data dependency.
ccc: { ddd: 1 } // Change it will refresh all elements without changing the components and page declaring data dependency.
},
globalData: ["globalPropTest", "ccc.ddd"],
add: function() {
if (!this.data.text.trim().length) {
return;
}
this.data.items.push({
text: this.data.text,
id: Date.now()
});
this.data.text = "";
}
// Default value is false, set to true will update all instances when data changing.
// updateAll: true
data: {
items: [],
text: "",
firstName: "dnt",
lastName: "zhang",
fullName: function() {
return this.firstName + this.lastName;
},
globalPropTest: "abc", // Change it will refresh all elements without changing the components and page declaring data dependency.
ccc: { ddd: 1 } // Change it will refresh all elements without changing the components and page declaring data dependency.
},
globalData: ["globalPropTest", "ccc.ddd"],
add: function() {
if (!this.data.text.trim().length) {
return;
}
this.data.items.push({
text: this.data.text,
id: Date.now()
});
this.data.text = "";
}
// Default value is false, set to true will update all instances when data changing.
// updateAll: true
};
```
@ -375,19 +375,19 @@ Custom Element requires declaring dependent data so that Omi stores compute the
```js
class TodoApp extends WeElement {
// If you use store, the data is only used to declare dependencies.
static get data() {
return { items: [], text: "" };
}
// ...
handleChange = e => {
this.store.data.text = e.target.value;
};
// If you use store, the data is only used to declare dependencies.
static get data() {
return { items: [], text: "" };
}
// ...
handleChange = e => {
this.store.data.text = e.target.value;
};
handleSubmit = e => {
e.preventDefault();
this.store.add();
};
handleSubmit = e => {
e.preventDefault();
this.store.add();
};
}
```
@ -451,21 +451,21 @@ import { observe } from "omi-mobx";
@observe
@tag("my-app")
class MyApp extends WeElement {
install() {
this.data.name = "omi";
}
install() {
this.data.name = "omi";
}
onClick = () => {
this.data.name = "Omi V4.0";
};
onClick = () => {
this.data.name = "Omi V4.0";
};
render(props, data) {
return (
<div onClick={this.onClick}>
<h1>Welcome to {data.name}</h1>
</div>
);
}
render(props, data) {
return (
<div onClick={this.onClick}>
<h1>Welcome to {data.name}</h1>
</div>
);
}
}
```

View File

@ -3,15 +3,15 @@
## Omi 文档
- [Omi 文档](#omi-文档)
- [My First Element](#my-first-element)
- [Props](#props)
- [Event](#event)
- [Custom Event](#custom-event)
- [CSS](#css)
- [Ref](#ref)
- [Store](#store)
- [Slot](#slot)
- [SSR](#ssr)
- [My First Element](#my-first-element)
- [Props](#props)
- [Event](#event)
- [Custom Event](#custom-event)
- [CSS](#css)
- [Ref](#ref)
- [Store](#store)
- [Slot](#slot)
- [SSR](#ssr)
### My First Element

View File

@ -3,15 +3,15 @@ English | [简体中文](./main-concepts.cn.md)
## Omi Docs
- [Omi Docs](#omi-docs)
- [My First Element](#my-first-element)
- [Props](#props)
- [Event](#event)
- [Custom Event](#custom-event)
- [CSS](#css)
- [Ref](#ref)
- [Store](#store)
- [Slot](#slot)
- [SSR](#ssr)
- [My First Element](#my-first-element)
- [Props](#props)
- [Event](#event)
- [Custom Event](#custom-event)
- [CSS](#css)
- [Ref](#ref)
- [Store](#store)
- [Slot](#slot)
- [SSR](#ssr)
### My First Element

View File

@ -2,8 +2,8 @@
| Package | description |
| ------ | ------ |
| omi | Omi master package |
| omi-cli | Omi command line tool |
| omi | Omi master package |
| omi-cli | Omi command line tool |
| omi-element-ui | Omi version of element-ui |
| omi-ie11 | Omi version compatible with ie11 |
| omi-mobx | Adapter for mobx in omi |

0
packages/omi-cli/README.md Executable file → Normal file
View File

0
packages/omi-cli/template/app-ts/README.md Executable file → Normal file
View File

0
packages/omi-cli/template/app/README.md Executable file → Normal file
View File

View File

@ -9,44 +9,44 @@
| Element | Owner |Usage |
| ------ | ------ |------ |
| ~~el-button~~ | dntzhang |[Usage](https://github.com/Tencent/omi/blob/master/packages/omi-element-ui/src/elements/button/index.js#L19-L118) |
| ~~el-icon~~ | dntzhang | |
| ~~el-radio~~| dntzhang | [Usage](https://github.com/Tencent/omi/blob/master/packages/omi-element-ui/src/elements/radio/index.js#L19-L34)|
| el-checkbox| @zhengbao | |
| el-input| @zhengbao | |
| ~~el-input-number~~| dntzhang | [Usage](https://github.com/Tencent/omi/blob/master/packages/omi-element-ui/src/elements/input-number/index.js#L18-L22) |
| el-select| |
| el-cascader| |
| el-switch| |
| el-slider| |
| el-time-select| |
| el-date-picker| |
| el-upload| |
| el-rate| @wadellg |
| el-color-picker| |
| el-transfer| |
| el-form| |
| el-table| dntzhang |
| ~~el-tag~~| @1921622004 | [Usage](https://github.com/Tencent/omi/blob/master/packages/omi-element-ui/src/elements/tag/index.js)|
| ~~el-progress~~| dntzhang |[Usage](https://github.com/Tencent/omi/blob/master/packages/omi-element-ui/src/elements/progress/index.js#L18-L42)|
| el-tree| |
| el-pagination| dntzhang |
| el-badge| |
| ~~el-alert~~| @zhengbao |
| el-menu| @zhengbao |
| el-tabs| @zhengbao |
| ~~el-breadcrumb~~| @wadellg | [Usage](https://github.com/Tencent/omi/blob/master/packages/omi-element-ui/src/elements/breadcrumb/index.js)|
| el-dropdown| |
| el-steps| @daizhan |
| el-dialog| |
| el-tooltip| |
| el-popover| |
| el-card| @wadellg |
| el-carousel| |
| el-collapse| |
| el-touch| dntzhang |
| el-finger| dntzhang|
| notice| | |
| ~~el-button~~ | dntzhang |[Usage](https://github.com/Tencent/omi/blob/master/packages/omi-element-ui/src/elements/button/index.js#L19-L118) |
| ~~el-icon~~ | dntzhang | |
| ~~el-radio~~| dntzhang | [Usage](https://github.com/Tencent/omi/blob/master/packages/omi-element-ui/src/elements/radio/index.js#L19-L34)|
| el-checkbox| @zhengbao | |
| el-input| @zhengbao | |
| ~~el-input-number~~| dntzhang | [Usage](https://github.com/Tencent/omi/blob/master/packages/omi-element-ui/src/elements/input-number/index.js#L18-L22) |
| el-select| |
| el-cascader| |
| el-switch| |
| el-slider| |
| el-time-select| |
| el-date-picker| |
| el-upload| |
| el-rate| @wadellg |
| el-color-picker| |
| el-transfer| |
| el-form| |
| el-table| dntzhang |
| ~~el-tag~~| @1921622004 | [Usage](https://github.com/Tencent/omi/blob/master/packages/omi-element-ui/src/elements/tag/index.js)|
| ~~el-progress~~| dntzhang |[Usage](https://github.com/Tencent/omi/blob/master/packages/omi-element-ui/src/elements/progress/index.js#L18-L42)|
| el-tree| |
| el-pagination| dntzhang |
| el-badge| |
| ~~el-alert~~| @zhengbao |
| el-menu| @zhengbao |
| el-tabs| @zhengbao |
| ~~el-breadcrumb~~| @wadellg | [Usage](https://github.com/Tencent/omi/blob/master/packages/omi-element-ui/src/elements/breadcrumb/index.js)|
| el-dropdown| |
| el-steps| @daizhan |
| el-dialog| |
| el-tooltip| |
| el-popover| |
| el-card| @wadellg |
| el-carousel| |
| el-collapse| |
| el-touch| dntzhang |
| el-finger| dntzhang|
| notice| | |
## Develop

View File

@ -18,17 +18,17 @@ import "omi-tap"
@tag("my-app")
class MyApp extends WeElement {
onTap = () => {
console.log('tap')
}
onTap = () => {
console.log('tap')
}
render() {
return (
<omi-tap onTap={this.onTap} >
<div>Tap Me!</div>
</omi-tap>
)
}
render() {
return (
<omi-tap onTap={this.onTap} >
<div>Tap Me!</div>
</omi-tap>
)
}
}
render(<my-app />, "body");

View File

@ -1,6 +1,6 @@
# omi-transform
Made css3 transform super easy.
Made css3 transform super easy.
![](./css3transform/asset/transform.gif)
@ -33,50 +33,50 @@ import "omi-transform";
@tag("my-app")
class MyApp extends WeElement {
install() {
this.data.rotateZ = 30
this.linkRef = (e) => {
this.animDiv = e
}
}
install() {
this.data.rotateZ = 30
this.linkRef = (e) => {
this.animDiv = e
}
}
css() {
return `
css() {
return `
div{
color: red;
cursor: pointer;
width:150px;
height:150px;
line-height:150px;
text-align: center;
border: 1px solid green;
cursor: pointer;
width:150px;
height:150px;
line-height:150px;
text-align: center;
border: 1px solid green;
}`;
}
}
installed() {
setInterval(() => {
//slow
// this.data.rotateZ += 2
// this.update()
installed() {
setInterval(() => {
//slow
// this.data.rotateZ += 2
// this.update()
//fast
this.animDiv.rotateZ += 2
//sync for update call of any scenario
this.data.rotateZ = this.animDiv.rotateZ
}, 16)
//fast
this.animDiv.rotateZ += 2
//sync for update call of any scenario
this.data.rotateZ = this.animDiv.rotateZ
}, 16)
}
render(props, data) {
return (
<css3-transform rotateZ={data.rotateZ} translateX={0} perspective={0} >
<div ref={this.linkRef}>
omi-transform
</div>
</css3-transform>
)
}
}
render(props, data) {
return (
<css3-transform rotateZ={data.rotateZ} translateX={0} perspective={0} >
<div ref={this.linkRef}>
omi-transform
</div>
</css3-transform>
)
}
}
render(<my-app />, "body");

View File

@ -7,6 +7,7 @@
}
},
"rules": {
"semi": 2
"semi": 2,
"indent": ["error", 2]
}
}