Skip to content
This repository has been archived by the owner on Mar 7, 2024. It is now read-only.

Commit

Permalink
feat: 新增 usePageEvent,useAppEvent 统一生命周期 hook (#722)
Browse files Browse the repository at this point in the history
resolve #179
  • Loading branch information
Darmody committed Mar 19, 2020
1 parent 8c41e2e commit 0e8d7cd
Show file tree
Hide file tree
Showing 33 changed files with 281 additions and 149 deletions.
18 changes: 11 additions & 7 deletions docs/guide/framework.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,28 +134,32 @@ export default class IndexPage extends React.Component {
对于函数组件的页面  我们提供了 hooks 来监听生命周期。

```jsx
import { useShow } from 'remax';
import { usePageEvent } from 'remax';

export default () => {
useShow(() => {
// onShow 生命周期
usePageEvent('onShow', () => {
console.log('onShow');
});

return <View>view</View>;
// 支付宝 onBack 回调
usePageEvent('onBack', () => {
console.log('onBack');
});
};
```

对于函数组件的 App, hook 名称上多了一个 App 前缀,与页面 hook 做出区分。
对于函数组件的 App, `useAppEvent`

```jsx
import { useAppShow, useAppShareAppMessage } from 'remax';
import { useAppEvent } from 'remax';

export default function App(props) {
useAppShow(() => {
useAppEvent('onShow', () => {
console.log('这个 hook 等用于 onShow');
});

useAppShareAppMessage(() => {
useAppShareAppMessage('onShareAppMessage', () => {
console.log('这个 hook 等用于 onShareAppMessage');
});

Expand Down
3 changes: 1 addition & 2 deletions packages/remax-cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"watch": "tsc -w",
"prebuild": "rm -rf lib",
"build": "tsc",
"test": "cross-env NODE_ENV=test jest",
"test": "jest",
"test:debug": "npx --node-arg=--inspect-brk jest -i"
},
"dependencies": {
Expand Down Expand Up @@ -93,7 +93,6 @@
"babel-plugin-loop-optimizer": "^1.4.1",
"babel-plugin-tester": "^8.0.1",
"chalk": "^3.0.0",
"cross-env": "^7.0.2",
"eol": "^0.9.1",
"fs-readdir-recursive": "^1.1.0",
"jest": "^24.8.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1520,7 +1520,6 @@ var AppLifecycle;
AppLifecycle["shareAppMessage"] = "shareAppMessage";
AppLifecycle["pageNotFound"] = "pageNotFound";
})(AppLifecycle || (AppLifecycle = {}));

function callbackName(name) {
if (name.startsWith('before')) {
return capitalize(name);
Expand Down Expand Up @@ -2147,21 +2146,21 @@ function createPageConfig(Page) {
events: {
// 页面返回时触发
onBack: function onBack() {
return this.callLifecycle(Lifecycle.back);
return config.callLifecycle(Lifecycle.back);
},
// 键盘高度变化时触发
onKeyboardHeight: function onKeyboardHeight(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.keyboardHeight, e);
},
onTabItemTap: function onTabItemTap(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.tabItemTap, e);
},
// 点击但切换tabItem前触发
beforeTabItemTap: function beforeTabItemTap() {
return this.callLifecycle(Lifecycle.beforeTabItemTap);
return config.callLifecycle(Lifecycle.beforeTabItemTap);
},
onResize: function onResize(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.resize, e);
}
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1435,7 +1435,6 @@ var AppLifecycle;
AppLifecycle["shareAppMessage"] = "shareAppMessage";
AppLifecycle["pageNotFound"] = "pageNotFound";
})(AppLifecycle || (AppLifecycle = {}));

function callbackName(name) {
if (name.startsWith('before')) {
return capitalize(name);
Expand Down Expand Up @@ -2062,21 +2061,21 @@ function createPageConfig(Page) {
events: {
// 页面返回时触发
onBack: function onBack() {
return this.callLifecycle(Lifecycle.back);
return config.callLifecycle(Lifecycle.back);
},
// 键盘高度变化时触发
onKeyboardHeight: function onKeyboardHeight(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.keyboardHeight, e);
},
onTabItemTap: function onTabItemTap(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.tabItemTap, e);
},
// 点击但切换tabItem前触发
beforeTabItemTap: function beforeTabItemTap() {
return this.callLifecycle(Lifecycle.beforeTabItemTap);
return config.callLifecycle(Lifecycle.beforeTabItemTap);
},
onResize: function onResize(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.resize, e);
}
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1295,7 +1295,6 @@ var AppLifecycle;
AppLifecycle["shareAppMessage"] = "shareAppMessage";
AppLifecycle["pageNotFound"] = "pageNotFound";
})(AppLifecycle || (AppLifecycle = {}));

function callbackName(name) {
if (name.startsWith('before')) {
return capitalize(name);
Expand Down Expand Up @@ -1900,21 +1899,21 @@ function createPageConfig(Page) {
events: {
// 页面返回时触发
onBack: function onBack() {
return this.callLifecycle(Lifecycle.back);
return config.callLifecycle(Lifecycle.back);
},
// 键盘高度变化时触发
onKeyboardHeight: function onKeyboardHeight(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.keyboardHeight, e);
},
onTabItemTap: function onTabItemTap(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.tabItemTap, e);
},
// 点击但切换tabItem前触发
beforeTabItemTap: function beforeTabItemTap() {
return this.callLifecycle(Lifecycle.beforeTabItemTap);
return config.callLifecycle(Lifecycle.beforeTabItemTap);
},
onResize: function onResize(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.resize, e);
}
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1461,7 +1461,6 @@ var AppLifecycle;
AppLifecycle["shareAppMessage"] = "shareAppMessage";
AppLifecycle["pageNotFound"] = "pageNotFound";
})(AppLifecycle || (AppLifecycle = {}));

function callbackName(name) {
if (name.startsWith('before')) {
return capitalize(name);
Expand Down Expand Up @@ -2088,21 +2087,21 @@ function createPageConfig(Page) {
events: {
// 页面返回时触发
onBack: function onBack() {
return this.callLifecycle(Lifecycle.back);
return config.callLifecycle(Lifecycle.back);
},
// 键盘高度变化时触发
onKeyboardHeight: function onKeyboardHeight(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.keyboardHeight, e);
},
onTabItemTap: function onTabItemTap(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.tabItemTap, e);
},
// 点击但切换tabItem前触发
beforeTabItemTap: function beforeTabItemTap() {
return this.callLifecycle(Lifecycle.beforeTabItemTap);
return config.callLifecycle(Lifecycle.beforeTabItemTap);
},
onResize: function onResize(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.resize, e);
}
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1447,7 +1447,6 @@ var AppLifecycle;
AppLifecycle["shareAppMessage"] = "shareAppMessage";
AppLifecycle["pageNotFound"] = "pageNotFound";
})(AppLifecycle || (AppLifecycle = {}));

function callbackName(name) {
if (name.startsWith('before')) {
return capitalize(name);
Expand Down Expand Up @@ -2074,21 +2073,21 @@ function createPageConfig(Page) {
events: {
// 页面返回时触发
onBack: function onBack() {
return this.callLifecycle(Lifecycle.back);
return config.callLifecycle(Lifecycle.back);
},
// 键盘高度变化时触发
onKeyboardHeight: function onKeyboardHeight(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.keyboardHeight, e);
},
onTabItemTap: function onTabItemTap(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.tabItemTap, e);
},
// 点击但切换tabItem前触发
beforeTabItemTap: function beforeTabItemTap() {
return this.callLifecycle(Lifecycle.beforeTabItemTap);
return config.callLifecycle(Lifecycle.beforeTabItemTap);
},
onResize: function onResize(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.resize, e);
}
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1705,7 +1705,6 @@ var AppLifecycle;
AppLifecycle["shareAppMessage"] = "shareAppMessage";
AppLifecycle["pageNotFound"] = "pageNotFound";
})(AppLifecycle || (AppLifecycle = {}));

function callbackName(name) {
if (name.startsWith('before')) {
return capitalize(name);
Expand Down Expand Up @@ -2332,21 +2331,21 @@ function createPageConfig(Page) {
events: {
// 页面返回时触发
onBack: function onBack() {
return this.callLifecycle(Lifecycle.back);
return config.callLifecycle(Lifecycle.back);
},
// 键盘高度变化时触发
onKeyboardHeight: function onKeyboardHeight(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.keyboardHeight, e);
},
onTabItemTap: function onTabItemTap(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.tabItemTap, e);
},
// 点击但切换tabItem前触发
beforeTabItemTap: function beforeTabItemTap() {
return this.callLifecycle(Lifecycle.beforeTabItemTap);
return config.callLifecycle(Lifecycle.beforeTabItemTap);
},
onResize: function onResize(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.resize, e);
}
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1287,7 +1287,6 @@ var AppLifecycle;
AppLifecycle["shareAppMessage"] = "shareAppMessage";
AppLifecycle["pageNotFound"] = "pageNotFound";
})(AppLifecycle || (AppLifecycle = {}));

function callbackName(name) {
if (name.startsWith('before')) {
return capitalize(name);
Expand Down Expand Up @@ -1806,21 +1805,21 @@ function createPageConfig(Page) {
events: {
// 页面返回时触发
onBack: function onBack() {
return this.callLifecycle(Lifecycle.back);
return config.callLifecycle(Lifecycle.back);
},
// 键盘高度变化时触发
onKeyboardHeight: function onKeyboardHeight(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.keyboardHeight, e);
},
onTabItemTap: function onTabItemTap(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.tabItemTap, e);
},
// 点击但切换tabItem前触发
beforeTabItemTap: function beforeTabItemTap() {
return this.callLifecycle(Lifecycle.beforeTabItemTap);
return config.callLifecycle(Lifecycle.beforeTabItemTap);
},
onResize: function onResize(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.resize, e);
}
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1423,7 +1423,6 @@ var AppLifecycle;
AppLifecycle["shareAppMessage"] = "shareAppMessage";
AppLifecycle["pageNotFound"] = "pageNotFound";
})(AppLifecycle || (AppLifecycle = {}));

function callbackName(name) {
if (name.startsWith('before')) {
return capitalize(name);
Expand Down Expand Up @@ -2050,21 +2049,21 @@ function createPageConfig(Page) {
events: {
// 页面返回时触发
onBack: function onBack() {
return this.callLifecycle(Lifecycle.back);
return config.callLifecycle(Lifecycle.back);
},
// 键盘高度变化时触发
onKeyboardHeight: function onKeyboardHeight(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.keyboardHeight, e);
},
onTabItemTap: function onTabItemTap(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.tabItemTap, e);
},
// 点击但切换tabItem前触发
beforeTabItemTap: function beforeTabItemTap() {
return this.callLifecycle(Lifecycle.beforeTabItemTap);
return config.callLifecycle(Lifecycle.beforeTabItemTap);
},
onResize: function onResize(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.resize, e);
}
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1435,7 +1435,6 @@ var AppLifecycle;
AppLifecycle["shareAppMessage"] = "shareAppMessage";
AppLifecycle["pageNotFound"] = "pageNotFound";
})(AppLifecycle || (AppLifecycle = {}));

function callbackName(name) {
if (name.startsWith('before')) {
return capitalize(name);
Expand Down Expand Up @@ -2062,21 +2061,21 @@ function createPageConfig(Page) {
events: {
// 页面返回时触发
onBack: function onBack() {
return this.callLifecycle(Lifecycle.back);
return config.callLifecycle(Lifecycle.back);
},
// 键盘高度变化时触发
onKeyboardHeight: function onKeyboardHeight(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.keyboardHeight, e);
},
onTabItemTap: function onTabItemTap(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.tabItemTap, e);
},
// 点击但切换tabItem前触发
beforeTabItemTap: function beforeTabItemTap() {
return this.callLifecycle(Lifecycle.beforeTabItemTap);
return config.callLifecycle(Lifecycle.beforeTabItemTap);
},
onResize: function onResize(e) {
return this.callLifecycle(Lifecycle.keyboardHeight, e);
return config.callLifecycle(Lifecycle.resize, e);
}
}
};
Expand Down
Loading

0 comments on commit 0e8d7cd

Please sign in to comment.