Skip to content

Commit

Permalink
Merge branch 'master' into fix-ignore-reactive
Browse files Browse the repository at this point in the history
  • Loading branch information
hiyuki authored Jan 14, 2025
2 parents 28e6c9a + 9647bac commit 1d0ca36
Show file tree
Hide file tree
Showing 47 changed files with 4,157 additions and 2,178 deletions.
10 changes: 10 additions & 0 deletions docs-vuepress/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,16 @@ const sidebar = {
'advance/provide-inject'
]
},
{
title: '跨端',
collapsable: false,
children: [
'platform/basic',
// 'platform/miniprogram',
// 'platform/web',
'platform/rn'
]
},
{
title: '组合式 API',
collapsable: false,
Expand Down
56 changes: 45 additions & 11 deletions docs-vuepress/api/directives.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,8 @@ Page({
```

``` js
Page({
import { createComponent } from '@mpxjs/core'
createComponent({
data: {
array: [{
id: 1, text: 'foo'
Expand Down Expand Up @@ -126,7 +127,8 @@ Page({
```

``` js
Page({
import { createComponent } from '@mpxjs/core'
createComponent({
data: {
array: [{
id: 1, text: 'foo'
Expand Down Expand Up @@ -549,7 +551,8 @@ Mpx提供了 `wx:ref=xxx` 来更方便获取 WXML 节点信息的对象。在JS
```

```js
Page({
import {createPage} from '@mpxjs/core'
createPage({
data: {
show: false
}
Expand Down Expand Up @@ -679,22 +682,28 @@ capture-catch中断捕获阶段和取消冒泡阶段

## @mode

`type mode = 'wx' | 'ali' | 'qq' | 'swan' | 'tt' | 'web' | 'qa'`
`type mode = 'wx' | 'ali' | 'qq' | 'swan' | 'tt' | 'web' | 'qa' | 'ios' | 'android' | 'harmony'`

### 属性中使用
跨平台输出场景下,Mpx 框架允许用户在组件上使用 @ 和 | 符号来指定某个节点或属性只在某些平台下有效。

```html
<button
open-type@wx|swan="getUserInfo"
bindgetuserinfo@wx|swan="getUserInfo"
open-type@ali="getAuthorize"
open-type@wx|swan|ios="getUserInfo"
bindgetuserinfo@wx|swan|ios="getUserInfo"
open-type@ali|ios="getAuthorize"
scope@ali="userInfo"
enable-background@ios|android="{{ true }}"
onTap@ali="onTap">
获取用户信息
</button>
```
在上方示例中,开发者可以便捷的设置在支付宝小程序与微信和百度小程序等平台分别生效的 open-type 属性,
以及事件绑定或其他属性。假设当前 srcMode 为 wx,目标平台为 ali,则输出产物为:
例如在上述示例中:
* 在支付宝小程序与微信和百度小程序等平台分别生效的 open-type 等属性
* 在输出iOS或android平台时,enable-background 属性生效
* 以及事件绑定或其他属性灵活的进行条件编译

假设当前 srcMode 为 wx,目标平台为 ali,则输出产物为:
```html
<button
open-type="getAuthorize"
Expand All @@ -703,7 +712,23 @@ capture-catch中断捕获阶段和取消冒泡阶段
获取用户信息
</button>
```
同时,该指令也可以作用在单个节点上,但需要注意的是,该指令作用在单个节点时,节点仅在目标平台输出,同时节点自身属性不会进行跨平台语法转换,不过其子节点不受影响。
假设当前 srcMode 为 wx,目标平台为 ios,则输出产物为:
```html
<button
open-type="getAuthorize"
bindgetuserinfo="getUserInfo"
open-type="getAuthorize"
enable-background="{{ true }}"
>
获取用户信息
</button>
```

### 节点中使用
同时,该指令也可以作用在单个节点上,来对节点进行跨平台条件判断。

但需要注意的是,该指令作用在单个节点时,节点仅在目标平台输出,同时节点自身属性不会进行跨平台语法转换,不过其子节点不受影响。

```html
<!--当srcMode为wx,跨平台输出ali时-->
<!--错误写法-->
Expand All @@ -715,10 +740,17 @@ capture-catch中断捕获阶段和取消冒泡阶段
<view wx:if="{{flag}}">text</view>
</view>
```
::: danger
另外在跨端输出 React Native 和 H5 时,不要在基础组件节点上使用 @mode 指令,仅可在自定义组件节点使用 @mode 指令
:::
```html
<!--错误写法-->
<view @ios>测试数据</view>
```

## @_mode

`type _mode = '_wx' | '_ali' | '_qq' | '_swan' | '_tt' | '_web' | '_qa'`
`type _mode = '_wx' | '_ali' | '_qq' | '_swan' | '_tt' | '_web' | '_qa' | '_ios' | '_android' | '_harmony'`

有时开发者期望使用 @mode 这种方式仅控制节点的展示,保留节点属性的平台转换能力,为此 Mpx 实现了一个隐式属性条件编译能力。
```html
Expand All @@ -727,6 +759,8 @@ capture-catch中断捕获阶段和取消冒泡阶段
```
在对应的平台前加一个_,例如@_ali、@_swan、@_tt等,使用该隐式规则仅有条件编译能力,节点属性语法转换能力依旧。

在跨端输出 React Native 和 H5 时,可以在节点上使用该属性。

## @env

`string`
Expand Down
51 changes: 47 additions & 4 deletions docs-vuepress/api/extend.md
Original file line number Diff line number Diff line change
Expand Up @@ -459,17 +459,58 @@ useFetch().fetch({
| ------------- |:-----:| :-----:| :-----: | :-----: |
| getSystemInfo|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| getSystemInfoSync|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| getDeviceInfo|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| getWindowInfo|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| getLaunchOptionsSync|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| getEnterOptionsSync|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| nextTick |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| showToast |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| hideToast |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| showModal |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| showLoading |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| hideLoading |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| showActionSheet |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| createAnimation |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| onAppShow |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| onAppHide |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| offAppShow |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| offAppHide |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| onError |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| offError |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| onUnhandledRejection |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| offUnhandledRejection |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| createInnerAudioContext |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| closeBLEConnection |:white_check_mark:|:white_check_mark:|:x:|:x:|
| createBLEConnection |:white_check_mark:|:white_check_mark:|:x:|:x:|
| onBLEConnectionStateChange |:white_check_mark:|:white_check_mark:|:x:|:x:|
| createIntersectionObserver |:white_check_mark:|:white_check_mark:|:x:|:x:|
| createSelectorQuery |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| getExtConfig |:white_check_mark:|:white_check_mark:|:x:|:x:|
| getExtConfigSync |:white_check_mark:|:white_check_mark:|:x:|:x:|
| onKeyboardHeightChange |:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|
| offKeyboardHeightChange |:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|
| hideKeyboard |:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|
| getLocation |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| openLocation |:white_check_mark:|:white_check_mark:|:x:|:x:|
| chooseLocation |:white_check_mark:|:white_check_mark:|:x:|:x:|
| pageScrollTo |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| stopPullDownRefresh |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| startPullDownRefresh |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| redirectTo |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| navigateTo |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| navigateBack |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| reLaunch |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| switchTab |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| setTabBarItem |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| setTabBarStyle |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| showTabBar |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| hideTabBar |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| vibrateShort |:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|
| vibrateLong |:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|
| showNavigationBarLoading |:white_check_mark:|:white_check_mark:|:x:|:x:|
| hideNavigationBarLoading |:white_check_mark:|:white_check_mark:|:x:|:x:|
| setNavigationBarTitle |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| setNavigationBarColor |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
| setNavigationBarTitle |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| setNavigationBarColor |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| request |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| downloadFile |:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|:x:|
| uploadFile |:white_check_mark:|:white_check_mark:|:x:|:x:|
Expand All @@ -487,6 +528,7 @@ useFetch().fetch({
| previewImage |:white_check_mark:|:white_check_mark:|:x:|:x:|
| compressImage |:white_check_mark:|:white_check_mark:|:x:|:x:|
| chooseImage |:white_check_mark:|:white_check_mark:|:x:|:x:|
| getImageInfo |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| getLocation |:white_check_mark:|:white_check_mark:|:x:|:x:|
| saveFile |:white_check_mark:|:white_check_mark:|:x:|:x:|
| removeSavedFile |:white_check_mark:|:white_check_mark:|:x:|:x:|
Expand All @@ -495,8 +537,8 @@ useFetch().fetch({
| addPhoneContact |:white_check_mark:|:white_check_mark:|:x:|:x:|
| setClipboardData |:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|
| getClipboardData |:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|
| setScreenBrightness |:white_check_mark:|:white_check_mark:|:x:|:x:|
| getScreenBrightness |:white_check_mark:|:white_check_mark:|:x:|:x:|
| setScreenBrightness |:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|
| getScreenBrightness |:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|
| makePhoneCall |:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|
| stopAccelerometer |:white_check_mark:|:white_check_mark:|:x:|:x:|
| startAccelerometer |:white_check_mark:|:white_check_mark:|:x:|:x:|
Expand All @@ -522,6 +564,7 @@ useFetch().fetch({
| getNetworkType |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| onNetworkStatusChange |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| offNetworkStatusChange |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
| createVideoContext |:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
## webview-bridge
Mpx 支持小程序跨平台后,多个平台的小程序里都提供了 webview 组件,webview 打开的 H5 页面可以通过小程序提供的 API 来与小程序通信以及调用一些小程序的能力,但是各家小程序对于 webview 提供的API是不一样的。

Expand Down
Loading

0 comments on commit 1d0ca36

Please sign in to comment.