@tarojs/plugin-inject 4.1.8-beta.2 → 4.1.8-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -3
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -123,6 +123,13 @@ const config = {
|
|
|
123
123
|
'x-props': "'hello'",
|
|
124
124
|
bindYEvent: ''
|
|
125
125
|
},
|
|
126
|
+
// 无障碍适配
|
|
127
|
+
View: {
|
|
128
|
+
'aria-role':"",
|
|
129
|
+
'aria-label':"",
|
|
130
|
+
'aria-hidden':"",
|
|
131
|
+
'aria-selected':""
|
|
132
|
+
},
|
|
126
133
|
// 新增一个组件
|
|
127
134
|
ShareElement: {
|
|
128
135
|
key: "",
|
|
@@ -163,7 +170,86 @@ const config = {
|
|
|
163
170
|
}
|
|
164
171
|
```
|
|
165
172
|
|
|
166
|
-
#### 4.
|
|
173
|
+
#### 4. componentsMap
|
|
174
|
+
|
|
175
|
+
支持为小程序 **插入新的组件**。
|
|
176
|
+
|
|
177
|
+
componentsMap 的基本用法上例中已有体现,本示例是新增组件的一种特殊用法,即插入已有原生组件的副本组件,这种用法支持我们定制特定场景下的基础组件,比如 view、input 等。
|
|
178
|
+
|
|
179
|
+
示例场景:
|
|
180
|
+
在无障碍适配中,有时需要给 View 组件增加 tabindex 属性,但直接通过 components 配置注入后 base.wxml 中的所有 view 组件都会携带 tabindex 属性,当我们关闭无障碍功能(tabindex 值设置为 -1 或非法值)后,在部分 iOS 设备上点击存在 tabindex 属性的 view 节点时会有高亮轮廓或背景,这时我们需要一个不带 tabindex 属性的 View组件。
|
|
181
|
+
|
|
182
|
+
用法:
|
|
183
|
+
|
|
184
|
+
```js title='config/index.ts'
|
|
185
|
+
const config = {
|
|
186
|
+
plugins: [
|
|
187
|
+
['@tarojs/plugin-inject', {
|
|
188
|
+
nestElements: {
|
|
189
|
+
'tab-index-view': -1 // 使TabIndexView组件可嵌套
|
|
190
|
+
},
|
|
191
|
+
voidComponents: [
|
|
192
|
+
'tab-index-input' // TabIndexInput本质是小程序的input组件,所以需要设置其不可以渲染子组件
|
|
193
|
+
],
|
|
194
|
+
components: {
|
|
195
|
+
TabIndexView: { // 编译时使用,决定标签名<tab-index-view>,仅jsx中有使用才会生成对应的template
|
|
196
|
+
"tabindex": 0,
|
|
197
|
+
$duplicateFromComponent: 'View' // 4.1.8开始支持,$duplicateFromComponent区别于其他组件属性,它是一个特殊配置,用来指定新增组件基于哪个已有组件来扩展
|
|
198
|
+
},
|
|
199
|
+
TabIndexInput: {
|
|
200
|
+
"tabindex": 0,
|
|
201
|
+
$duplicateFromComponent: 'Input'
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
componentsMap: {
|
|
205
|
+
TabIndexView: 'tab-index-view', // 运行时使用,表示react中的TabIndex最终映射为value值标签对应的template
|
|
206
|
+
TabIndexInput: 'tab-index-input'
|
|
207
|
+
}
|
|
208
|
+
}]
|
|
209
|
+
]
|
|
210
|
+
}
|
|
211
|
+
```
|
|
212
|
+
设置完成后,TabIndexView 组件对应的 view 节点上会带有 tabindex 属性,而不会影响 View 组件。
|
|
213
|
+
|
|
214
|
+
对于 4.1.8 以下的版本,可配合插件来实现类似的效果:
|
|
215
|
+
```js title='config/index.ts'
|
|
216
|
+
const config = {
|
|
217
|
+
plugins: [
|
|
218
|
+
path.resolve(__dirname, './tabIndex.ts'),
|
|
219
|
+
['@tarojs/plugin-inject', {
|
|
220
|
+
nestElements: {
|
|
221
|
+
'tab-index-view': -1
|
|
222
|
+
},
|
|
223
|
+
components: {
|
|
224
|
+
TabIndexView: {
|
|
225
|
+
"tabindex": 0
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
componentsMap: {
|
|
229
|
+
TabIndexView: 'tab-index-view'
|
|
230
|
+
}
|
|
231
|
+
}]
|
|
232
|
+
]
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
```js title='config/tabIndex.ts'
|
|
237
|
+
export default (ctx) => {
|
|
238
|
+
ctx.modifyBuildAssets((args: { assets: any }) => {
|
|
239
|
+
const { assets } = args
|
|
240
|
+
|
|
241
|
+
let baseXmlVal = assets['base.wxml'].source()
|
|
242
|
+
const newBaseXmlVal = baseXmlVal.replace(/<(\/?)(tab-index-view)/g, '<$1view')
|
|
243
|
+
|
|
244
|
+
assets['base.wxml'] = {
|
|
245
|
+
size: () => newBaseXmlVal.length,
|
|
246
|
+
source: () => newBaseXmlVal,
|
|
247
|
+
}
|
|
248
|
+
})
|
|
249
|
+
}
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
#### 5. voidComponents
|
|
167
253
|
|
|
168
254
|
在 `voidComponents` 里的组件**不可以渲染子组件**。
|
|
169
255
|
|
|
@@ -205,7 +291,7 @@ const config = {
|
|
|
205
291
|
}
|
|
206
292
|
```
|
|
207
293
|
|
|
208
|
-
####
|
|
294
|
+
#### 6. nestElements
|
|
209
295
|
|
|
210
296
|
对于不支持模板递归的小程序(如微信、QQ、京东小程序),Taro3 默认下述组件的模板能递归自身:
|
|
211
297
|
|
|
@@ -256,7 +342,7 @@ const config = {
|
|
|
256
342
|
}
|
|
257
343
|
```
|
|
258
344
|
|
|
259
|
-
####
|
|
345
|
+
#### 7. thirdPartyComponents
|
|
260
346
|
|
|
261
347
|
> v1.0.2+ 开始支持,且需要 Taro v3.4.10+
|
|
262
348
|
|
package/dist/index.js
CHANGED
|
@@ -30,6 +30,7 @@ var index = (ctx, options) => {
|
|
|
30
30
|
ctx.registerMethod({
|
|
31
31
|
name: 'onSetupClose',
|
|
32
32
|
fn(platform) {
|
|
33
|
+
var _a;
|
|
33
34
|
const { voidComponents, nestElements, components, syncApis, asyncApis, componentsMap, thirdPartyComponents } = options;
|
|
34
35
|
const template = platform.template;
|
|
35
36
|
if (!template)
|
|
@@ -51,6 +52,13 @@ var index = (ctx, options) => {
|
|
|
51
52
|
if (components || syncApis || asyncApis || componentsMap) {
|
|
52
53
|
injectRuntimePath(platform);
|
|
53
54
|
if (components) {
|
|
55
|
+
for (const key in components) {
|
|
56
|
+
const { $duplicateFromComponent } = components[key] || {};
|
|
57
|
+
const internalComponents = ((_a = platform === null || platform === void 0 ? void 0 : platform.template) === null || _a === void 0 ? void 0 : _a.internalComponents) || {};
|
|
58
|
+
if (shared.hasOwn(components, key) && $duplicateFromComponent && internalComponents[$duplicateFromComponent]) {
|
|
59
|
+
components[key] = Object.assign({}, internalComponents[$duplicateFromComponent], components[key]);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
54
62
|
template.mergeComponents(ctx, components);
|
|
55
63
|
}
|
|
56
64
|
if (componentsMap) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":["isArray","isFunction","isObject","isString","path","esbuild"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,YAAe,CAAC,GAAmB,EAAE,OAAiB,KAAI;AACxD,IAAA,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE;IAExB,GAAG,CAAC,cAAc,CAAC;AACjB,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,EAAE,CAAE,QAA0B,EAAA
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":["isArray","isFunction","isObject","hasOwn","isString","path","esbuild"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tarojs/plugin-inject",
|
|
3
|
-
"version": "4.1.8-beta.
|
|
3
|
+
"version": "4.1.8-beta.3",
|
|
4
4
|
"description": "Taro 小程序端平台中间层插件",
|
|
5
5
|
"author": "O2Team",
|
|
6
6
|
"homepage": "https://github.com/nervjs/taro",
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
"node": ">= 18"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@tarojs/
|
|
28
|
-
"@tarojs/
|
|
29
|
-
"@tarojs/
|
|
27
|
+
"@tarojs/helper": "4.1.8-beta.3",
|
|
28
|
+
"@tarojs/shared": "4.1.8-beta.3",
|
|
29
|
+
"@tarojs/service": "4.1.8-beta.3"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
|
-
"@tarojs/shared": "4.1.8-beta.
|
|
33
|
-
"@tarojs/helper": "4.1.8-beta.
|
|
32
|
+
"@tarojs/shared": "4.1.8-beta.3",
|
|
33
|
+
"@tarojs/helper": "4.1.8-beta.3"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
36
|
"prod": "pnpm run build",
|