# flutter-mini-program
**Repository Path**: ptered/flutter-mini-program
## Basic Information
- **Project Name**: flutter-mini-program
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2021-03-03
- **Last Updated**: 2021-11-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Flutter 小程序
一个基于 Flutter 框架的小程序开发框架。通过解析 HTML 标签 和 CSS 样式,用于开发小程序应用,项目灵感来自 [FlutterHtmlView](https://github.com/PonnamKarthik/FlutterHtmlView)。
## 特性
- 将 html 标签转换为 Flutter 组件
- 支持使用 css 样式渲染 Flutter 组件
- 支持模板编译及数据绑定
## 框架
### 视图层
框架的视图层由 html 与 css 编写,通过 .html 文件定义页面的视图层,由组件来进行展示。将逻辑层的数据反应成视图,同时将视图层的事件发送给逻辑层。组件(Component)是视图的基本组成单元。
```html
{{message}}
```
### 逻辑层
小程序开发框架的逻辑层使用 JS / Dart 语法进行开发,通过 Dart / Flutter 插件完成视图逻辑的组织及原生插件调用。逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈。
```dart
Page({
config: {
"navigationBarTitleText": "Flutter MiniProgram - JS-API"
},
data: {
message: "Hello Flutter's MiniProgram"
},
onLoad() {
},
methods: {
onEvaluateJavascript: function() {
log('onEvaluateJavascript');
}
}
});
```
## 组件
### 支持的组件
- view: 视图容器
- icon: 图标
- text: 文本
- br: 换行符
- hr: 水平分隔线
- p: 段落
- h1 ~ h6: 标题
- a: 链接
- button: 按钮
- input: 输入框
- checkbox: 复选框
- switch: 单选开关
- slider: 滑块
- image: 图片
- video: 视频
- table: 表格
- list-view: 列表
- web-view: 网页容器
### 视图
视图容器,相当于 Web 的 div 标签或者 React Native 的 View 组件。
#### API
| 属性名 | 类型 | 默认值 | 描述 |
|----------|:-------------:|------:|:-------------:|
| class | String | | 自定义样式名 |
| style | String | | 内联样式 |
| onTap | EventHandle | | 点击事件 |
| onLongTap | EventHandle | | 长按事件 |
### Button
按钮。
#### API
| 属性名 | 类型 | 默认值 | 描述 |
|----------|:-------------:|------:|:-------------:|
| size | String | default | 按钮的大小 |
| type | String | default | 按钮的样式类型 |
| plain | Boolean | false | 按钮是否镂空,背景色透明 |
| disabled | Boolean | false | 是否禁用 |
| loading | Boolean | false | 名称前是否带 loading 图标 |
#### 示例
```html
按钮
disabled 状态
loading 状态
plain 状态
按钮大小
```
### Switch
开关选择器。
#### API
| 属性名 | 类型 | 默认值 | 描述 |
|----------|:-------------:|------:|:-------------:|
| checked | Boolean | | 是否选中 |
| disabled | Boolean | | 禁用状态 |
| size | double | | 自定义大小 |
| color | String | | 自定义颜色 |
| onChange | EventHandle | | checked 改变时触发 |
### 文本输入框
文本输入框, 相当于 Web 的 input 标签 或者 iOS 中的 UITextField 和 Android 中的 EditText。
| 属性名 | 类型 | 默认值 | 描述 |
|----------|:-------------:|------:|:-------------:|
| type | String | | input 的类型 |
| placeholder | String | | 占位符 |
| focus | Boolean | false | 获取焦点 |
```html
这是一个可以自动聚焦的input:
数字键盘:
```
### 图片
API
| 属性名 | 类型 | 默认值 | 描述 |
|----------|:-------------:|------:|:-------------:|
| class | String | | 自定义样式名 |
| style | String | | 内联样式 |
| src | String | | 图片路径 |
| fit | String | | 图片裁剪、缩放的模式, fill | contain | cover | fitWidth | fitHeight | none | scaleDown |
```html
网络图片:
本地图片:
图片裁剪模式 fit = "fill":
```