# Framework4Js [ES6+]
## Framework-for-js is a better Javascript's framework
Framework4Js 是一个专为js开发的一个前端框架。适用于Vue.js/React.js/Angular.js/uni-app等。
## Install 安装
```
npm i framework4js
```
## Use 使用
```
// Core Application 核心应用
import Application from "framework4js"
// Structure modules 解构获得各个模块
import {
Container,
Middleware,
Pipeline,
Exception,
Model,
ServiceProvider,
Command,
Transformer,
Lib,
Vue2Adapter,
VuexAdapter,
AxiosAdapter,
UniappRequestAdapter
} from 'framework4js';
// Start using 开始使用
import App from 'framework4js';
// Get container instance 得到一个容器实例
const app = App.getInstance();
// Import Vue.js Family bucket 引入Vue全家桶
import Vue from 'vue';
import Page from '@/App';
import router from '@/router';
// Bind Vue.js [2.x] adapter , You can use Vue.js [3.x] 绑定Vue.js适配器,你亦可自定义Vue.js[3.x]适配器并绑定
app.bindAdapter(Vue2Adapter, Vue);
// Get Vue.js Adapter instance 获得Vue.js适配器实例
const vueAdapter = app.getAdapter(Vue2Adapter);
// Use & Bind VuexAdapter
import Vuex from 'vuex';
vueAdapter.use(Vuex);
app.bindAdapter(VuexAdapter, Vuex);
const store = app.getAdapter(VuexAdapter).getStore();
// How to use ElementUI 如何使用 ElementUI
import 'element-ui/lib/theme-chalk/index.css';
import './styles/theme/index.css';
import ElementUI from 'element-ui';
// Vue.js Use method Vue.js Use 方法
vueAdapter.use(ElementUI);
// AppConfig is very important AppConfig 是整个框架的核心配置文件
import AppConfig from '@/app/config/AppConfig';
app.setAppConfig(AppConfig);
// set Vue config
vueAdapter.setConfig({ router, store, render:callback=>callback(Page) })
// Vue.js Run 运行Vue.js
vueAdapter.run('#app');
// Uniapp Run Uniapp 运行
// Adaptive Mpvue 适配 Mpvue 注意$mount方法
// vueAdapter.instance().$mount();
// Application Run 运行应用程序
app.run((services) => {
// Services come from the framework's own providers and custom providers
// 服务来自于框架自带providers和自定义providers
vueAdapter.Vue.prototype['$helper'] = services['$helper']();
vueAdapter.Vue.prototype['$command'] = services['$command']();
// ....
});
```
## The life cycle of framework 4js framework4js 的生命周期
1. create Registered service providers 注册服务提供者
2. mounted
3. unmounted
## App.getInstance() 获取应用实例的方法
- App.getInstance().version 获取框架版本号
- App.getInstance().setProviders() 设置服务提供者 - 自动注册服务提供者 需在framework的run方法运行前使用
- App.getInstance().registerProvider() 注册服务提供者
- App.getInstance().registerProviders() 批量注册服务提供者
- App.getInstance().setAdapter() 设置适配器
- App.getInstance().getAdapter() 获取适配器实例
- App.getInstance().setAppConfig() 设置APP配置
- App.getInstance().getAppConfig() 获取APP配置
- App.getInstance().get('$helper') 获取容器中的对象实例 例如获取$helper实例
- App.getInstance().run() 运行框架