Skip to content

Commit 76add10

Browse files
committed
docs: enableObjectSlots
1 parent 689ceea commit 76add10

File tree

2 files changed

+85
-83
lines changed

2 files changed

+85
-83
lines changed

packages/babel-plugin-jsx/README-zh_CN.md

Lines changed: 40 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
npm install @vue/babel-plugin-jsx -D
1515
```
1616

17-
配置 Babel
17+
配置 Babel
1818

1919
```js
2020
{
@@ -58,9 +58,14 @@ Default: `true`
5858

5959
合并 class / style / onXXX handlers
6060

61+
#### enableObjectSlots
62+
63+
使用 `enableObjectSlots` (文档下面会提到)。虽然在 JSX 中比较好使,但是会增加一些 `_isSlot` 的运行时条件判断,这会增加你的项目体积。即使你关闭了 `enableObjectSlots``v-slots` 还是可以使用
64+
6165
## 表达式
6266

6367
### 内容
68+
6469
函数式组件
6570

6671
```jsx
@@ -73,12 +78,12 @@ const App = () => <div></div>;
7378
const App = {
7479
render() {
7580
return <div>Vue 3.0</div>;
76-
}
81+
},
7782
};
7883
```
7984

8085
```jsx
81-
import { withModifiers, defineComponent } from 'vue';
86+
import { withModifiers, defineComponent } from "vue";
8287

8388
const App = defineComponent({
8489
setup() {
@@ -89,11 +94,9 @@ const App = defineComponent({
8994
};
9095

9196
return () => (
92-
<div onClick={withModifiers(inc, ['self'])}>
93-
{count.value}
94-
</div>
97+
<div onClick={withModifiers(inc, ["self"])}>{count.value}</div>
9598
);
96-
}
99+
},
97100
});
98101
```
99102

@@ -117,13 +120,8 @@ const App = () => <input type="email" />;
117120
动态绑定:
118121
119122
```jsx
120-
const placeholderText = 'email';
121-
const App = () => (
122-
<input
123-
type="email"
124-
placeholder={placeholderText}
125-
/>
126-
);
123+
const placeholderText = "email";
124+
const App = () => <input type="email" placeholder={placeholderText} />;
127125
```
128126
129127
### 指令
@@ -150,11 +148,11 @@ v-model
150148
```
151149
152150
```jsx
153-
<input v-model={[val, ['modifier']]} />
151+
<input v-model={[val, ["modifier"]]} />
154152
```
155153
156154
```jsx
157-
<A v-model={[val, 'argument', ['modifier']]} />
155+
<A v-model={[val, "argument", ["modifier"]]} />
158156
```
159157
160158
会变编译成:
@@ -163,29 +161,34 @@ v-model
163161
h(A, {
164162
argument: val,
165163
argumentModifiers: {
166-
modifier: true
164+
modifier: true,
167165
},
168-
'onUpdate:argument': $event => val = $event
169-
})
166+
"onUpdate:argument": ($event) => (val = $event),
167+
});
170168
```
171169
172170
v-models
173171
174172
> 注意: 你应该传递一个二维数组给 v-models。
175173
176174
```jsx
177-
<A v-models={[[foo], [bar, 'bar']]} />
175+
<A v-models={[[foo], [bar, "bar"]]} />
178176
```
179177
180178
```jsx
181-
<A v-models={[[foo, 'foo'], [bar, 'bar']]} />
179+
<A
180+
v-models={[
181+
[foo, "foo"],
182+
[bar, "bar"],
183+
]}
184+
/>
182185
```
183186
184187
```jsx
185188
<A
186189
v-models={[
187-
[foo, ['modifier']],
188-
[bar, 'bar', ['modifier']],
190+
[foo, ["modifier"]],
191+
[bar, "bar", ["modifier"]],
189192
]}
190193
/>
191194
```
@@ -198,13 +201,13 @@ h(A, {
198201
modelModifiers: {
199202
modifier: true,
200203
},
201-
'onUpdate:modelValue': $event => foo = $event,
204+
"onUpdate:modelValue": ($event) => (foo = $event),
202205
bar: bar,
203206
barModifiers: {
204207
modifier: true,
205208
},
206-
'onUpdate:bar': $event => bar = $event,
207-
})
209+
"onUpdate:bar": ($event) => (bar = $event),
210+
});
208211
```
209212
210213
自定义指令
@@ -213,31 +216,27 @@ h(A, {
213216
const App = {
214217
directives: { custom: customDirective },
215218
setup() {
216-
return () => (
217-
<a
218-
v-custom={[val, 'arg', ['a', 'b']]}
219-
/>
220-
);
219+
return () => <a v-custom={[val, "arg", ["a", "b"]]} />;
221220
},
222221
};
223222
```
224223
225-
### 插槽
224+
### 插槽
226225
227-
> 注意: 在 `jsx` 中,应该使用 **`v-slots`** 代替 *`v-slot`*
226+
> 注意: 在 `jsx` 中,应该使用 **`v-slots`** 代替 _`v-slot`_
228227
229228
```jsx
230229
const App = {
231230
setup() {
232231
const slots = {
233-
foo: () => <span>B</span>
232+
foo: () => <span>B</span>,
234233
};
235234
return () => (
236235
<A v-slots={slots}>
237236
<div>A</div>
238237
</A>
239238
);
240-
}
239+
},
241240
};
242241
243242
// or
@@ -246,10 +245,10 @@ const App = {
246245
setup() {
247246
const slots = {
248247
default: () => <div>A</div>,
249-
foo: () => <span>B</span>
248+
foo: () => <span>B</span>,
250249
};
251250
return () => <A v-slots={slots} />;
252-
}
251+
},
253252
};
254253
255254
// or
@@ -260,14 +259,14 @@ const App = {
260259
<A>
261260
{{
262261
default: () => <div>A</div>,
263-
foo: () => <span>B</span>
262+
foo: () => <span>B</span>,
264263
}}
265264
</A>
266-
<B>{() => 'foo'}</B>
265+
<B>{() => "foo"}</B>
267266
</>
268267
);
269-
}
270-
}
268+
},
269+
};
271270
```
272271
273272
### 在 TypeSript 中使用

0 commit comments

Comments
 (0)