# pure-frontend
**Repository Path**: magicodex/pure-frontend
## Basic Information
- **Project Name**: pure-frontend
- **Description**: 支持单页面应用的前端框架,包括 JS 隔离、CSS隔离等特性。(不定期从 https://github.com/magicodex/pure-frontend 同步代码)
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-08-19
- **Last Updated**: 2024-04-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# pure-frontend
解决单页面应用开发中常见的问题,比如不同视图间的样式隔离、JS隔离等。
## 安装依赖
```
npm install pure-frontend
```
## 添加依赖
依赖 jQuery,Bootstrap v4。
```
```
## 代码示例
比如有这么一段 HTML 代码。
```
...
...
```
*加载的视图会渲染到包含 pure-app 样式类名的标签下。*
```
/**
* @description 加载视图
* @param {string} url URL字符串
*/
Pure.app.loadView(url);
/**
* @description 注册视图的入口函数
* @param {string} viewName
* @param {function} mainFn
*/
Pure.app.viewMain(viewName, function (scope, view) {
// 加载完视图后会自动执行该函数
...
});
/**
* @description 调用远程接口
* @param {string} url
* @param {*} [data]
* @param {PlainObject} [opts]
* @returns {AjaxResult}
*/
Pure.fn.Ajax.callService(url, data, opts);
```
提供访问视图的方法描述。
```
class View {
/**
* @param {(Document|Element)} viewElement
* @param {ViewInfo} viewInfo
*/
constructor(viewElement: any, viewInfo: any, viewScope: any);
/**
* @description 返回视图对应的 DOM 元素
* @returns {(Document|Element)}
*/
getViewElement(): any;
/**
* @description 返回视图信息
* @returns {ViewInfo}
*/
getViewInfo(): any;
/**
* @description 返回视图对应的数据模型
* @returns {uiData.Model}
*/
getDataModel(): any;
/**
* @description 返回 URL 参数
* @param {string} name
* @returns {string}
*/
getUrlParam(name: any): any;
/**
* @description 查找视图下的指定元素,参数格式与 jQuery.find() 相同
* @param {...any} args
* @returns {jQuery}
*/
$find(...args: any[]): any;
/**
* @description 查找视图下的指定元素,通过配置 Global.config.uiNameAttributeName 指定的属性
* @param {string} name
* @returns {jQuery}
*/
$ui(name: any): any;
...
}
```
## 开源协议
MIT