diff --git a/packages/rax-componentwrapper/CHANGELOG.md b/packages/rax-componentwrapper/CHANGELOG.md
new file mode 100644
index 00000000..bab94c09
--- /dev/null
+++ b/packages/rax-componentwrapper/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Changelog
+
+# 1.0.0
+
+- Add `rax-componentwrapper`
\ No newline at end of file
diff --git a/packages/rax-componentwrapper/README.md b/packages/rax-componentwrapper/README.md
new file mode 100644
index 00000000..076b01fd
--- /dev/null
+++ b/packages/rax-componentwrapper/README.md
@@ -0,0 +1,45 @@
+## rax-componentwrapper
+
+## 支持
+阿里小程序(运行时) / 微信小程序(运行时)
+
+## 描述
+在运行时小程序中,默认所有的数据更新都使用 `Page` 的 `setData` 方法。对于部分需要频繁更新数据的元素来说,可以在元素外包裹 `rax-componentwrapper` 的方式,自动将该元素转成自定义组件,当元素数据发生变化时,使用组件的 `setData`,来起到性能优化的目的。
+
+需要注意:在阿里小程序中,需要开启基础库 2.0 构建或开启 component2 功能时,才能正常使用该组件,否则将降级使用 `Page` 的 `setData` 方法。
+
+## 安装
+
+```
+$ npm install rax-componentwrapper --save
+```
+
+## 使用
+
+```
+import ComponentWrapper from 'rax-componentwrapper';
+```
+## 例子
+
+```jsx
+import { createElement, render, useState } from 'rax';
+import DriverUniversal from 'driver-universal';
+import ComponentWrapper from 'rax-componentwrapper';
+import View from 'rax-view'
+
+const App = () => {
+ const [count, setCount] = useState(1);
+
+ return (
+
+ setCount(count + 1)}>plus
+
+ {count}
+
+
+ );
+}
+
+
+render(, document.body, { driver: DriverUniversal });
+```
diff --git a/packages/rax-componentwrapper/demo/basic.md b/packages/rax-componentwrapper/demo/basic.md
new file mode 100644
index 00000000..9d70d350
--- /dev/null
+++ b/packages/rax-componentwrapper/demo/basic.md
@@ -0,0 +1,27 @@
+---
+title: Baisc
+order: 1
+---
+
+basic usage
+
+```jsx
+import { createElement, useState } from 'rax';
+import ComponentWrapper from 'rax-componentwrapper';
+import View from 'rax-view';
+
+const App = () => {
+ const [count, setCount] = useState(1);
+
+ return (
+
+ setCount(count + 1)}>plus
+
+ {count}
+
+
+ );
+}
+
+export default App;
+```
\ No newline at end of file
diff --git a/packages/rax-componentwrapper/package.json b/packages/rax-componentwrapper/package.json
new file mode 100644
index 00000000..8fed7d46
--- /dev/null
+++ b/packages/rax-componentwrapper/package.json
@@ -0,0 +1,51 @@
+{
+ "name": "rax-componentwrapper",
+ "version": "1.0.0",
+ "description": "组件功能描述",
+ "main": "lib/index.js",
+ "module": "es/index.js",
+ "types": "lib/index.d.ts",
+ "files": [
+ "dist",
+ "es",
+ "lib"
+ ],
+ "keywords": [
+ "Rax",
+ "rax-component"
+ ],
+ "engines": {
+ "npm": ">=3.0.0"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/raxjs/rax-components.git"
+ },
+ "bugs": {
+ "url": "https://github.com/raxjs/rax-components/issues"
+ },
+ "homepage": "https://github.com/raxjs/rax-components#readme",
+ "scripts": {
+ "build": "../../node_modules/.bin/build-scripts build --config ../../build.json --skip-demo",
+ "start": "../../node_modules/.bin/build-scripts start --config ../../build.json",
+ "prepublishOnly": "npm run build"
+ },
+ "peerDependencies": {
+ "rax": "^1.1.0"
+ },
+ "devDependencies": {
+ "@ali/build-plugin-miniapp-preview": "^1.1.0",
+ "@alib/build-scripts": "^0.1.0",
+ "@types/rax": "^1.0.0",
+ "build-plugin-component": "^1.0.0",
+ "driver-universal": "^3.1.0",
+ "eslint": "^6.8.0",
+ "rax": "^1.1.0",
+ "rax-test-renderer": "^1.0.0",
+ "rax-text": "^2.2.0",
+ "rax-view": "^2.2.1",
+ "stylelint": "^13.7.2",
+ "typescript": "^3.7.3"
+ },
+ "license": "BSD-3-Clause"
+}
diff --git a/packages/rax-componentwrapper/src/index.tsx b/packages/rax-componentwrapper/src/index.tsx
new file mode 100644
index 00000000..1060f4f8
--- /dev/null
+++ b/packages/rax-componentwrapper/src/index.tsx
@@ -0,0 +1,9 @@
+import { createElement } from 'rax';
+
+const MyComponent = ({ children }) => {
+ return (
+
{children}
+ );
+};
+
+export default MyComponent;
diff --git a/packages/rax-componentwrapper/tsconfig.json b/packages/rax-componentwrapper/tsconfig.json
new file mode 100644
index 00000000..2d8b8910
--- /dev/null
+++ b/packages/rax-componentwrapper/tsconfig.json
@@ -0,0 +1,28 @@
+{
+ "compilerOptions": {
+ "module": "esNext",
+ "target": "es2015",
+ "jsx": "preserve",
+ "jsxFactory": "createElement",
+ "moduleResolution": "node",
+ "alwaysStrict": true,
+ "sourceMap": false,
+ "removeComments": false,
+ "preserveConstEnums": true,
+ "experimentalDecorators": true,
+ "noImplicitReturns": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": false,
+ "noImplicitAny": false,
+ "noImplicitThis": false,
+ "outDir": "lib",
+ "baseUrl": "."
+ },
+ "include": [
+ "src/**/*"
+ ],
+ "exclude": [
+ "node_modules",
+ "lib"
+ ]
+}