# CTMobile-Vue
**Repository Path**: playerljc/CTMobile-Vue
## Basic Information
- **Project Name**: CTMobile-Vue
- **Description**: CtMobile的Vue实现
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2019-01-03
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[english](https://github.com/playerljc/CTMobile-Vue "english") | 简体中文
## CtMobile-Vue
一个移动端框架,支持页面的多种形式切换,页面转场,页面传值,通知等,适用于开发单页面应用(SPA),混合开发(Hybrid),Cordova开发,CtMobile-Vue是在["CtMobile"](https://github.com/playerljc/CTMobile "点击了解CtMobile")的基础之上,加上了对[Vue](https://cn.vuejs.org/ "点击了解Vue")的支持。
## 开发灵感
期初刚接触Hybrid开发的时候公司选用的是jQueryMobile+Cordova的组合来开发混合应用,在用jQueryMobile的时候遇到了很多问题如管理类和Dom之间总是不能很好的有机结合在一起,当初的想法是如果在浏览器端每个局部页面和其管理类能像Android中的Activity一样就好了,所以灵感就来了,CtMobile的实现完全借助于Android中的Activity来实现。
## 三大概念
CtMoble中有三个重要的感念,分别是**Page**,**Router**,**BorasdCast**.
其中Page用来管理页面的创建,初始化,销毁的整个生命周期,Router管理这个框架的路由跳转,BorasdCast用来管理通知和页面之间的数据的通信交互。
## Page(页面)的启动模式
1. standard
多例模式
2. single
单例模式(当点击返回时会销毁)
3. singleInstance
完全的单例模式(在任何时候都不会被销毁)
4. result
带有返回值的(可以向父页面带回返回值)
5. singleInstanceResult
带有返回值的完全单例(不会被销毁,可以向父页面带回返回值)
## Page(页面)的转场效果
页面之间切换支持多种过度效果
1. slideleft-从右到左(overlay)
2. slideright-从左到右(overlay)
3. slideup-从下到上(overlay)
4. slidedown-从上到下(overlay)
5. wxslideleft-类似于微信的从右到左
6. wxslideright-类似于微信的从左到右
7. wxslideup-类似于微信的从下到上
8. wxslidedown-类似于微信的从上到下
9. pushslideleft-从右到左(push)
10. pushslideright-从左到右(push)
11. pushslideup-从下到上(push)
12. pushslidedown-从上到下(push)
13. material-Android Material的风格
## 其他功能
1. 页面之间的传值
2. 新增页面是否增加历史栈
3. 功能可以通过配置和api两种方式进行调用
## 安装
需要依赖vue,如果要是用.vue单文件组件,需要安装[vue-loader](https://github.com/vuejs/vue-loader),[vue-template-compiler](https://www.npmjs.com/package/babel-plugin-transform-vue-jsx),如果要支持jsx,需要安装[babel-plugin-transform-vue-jsx](https://github.com/vuejs/babel-plugin-transform-vue-jsx),具体配置请参考[vue-cli](https://github.com/vuejs/vue-cli "vue-cli")。
```bash
$ npm install @ctmobile/vue --save-dev
```
## API文档
[docs](https://playerljc.github.io/ctmobile-vue/index.html)
## 快速开始
**1. 初始化应用**
--------
```js
const Router = {
index: {
component: import(/* webpackChunkName: "index" */ "../pages/index/index.vue"),
},
info: {
component: import(/* webpackChunkName: "info" */ "../pages/info/index.vue"),
},
about: {
component: import(/* webpackChunkName: "about" */ "../pages/about/index.vue"),
},
};
const App = CtMobile.CtMobileFactory.create({
supportCordova: false,
linkCaptureReload: false,
router: Router,
});
```
详细参数解释请参考[属性配置](#属性配置)。
**2. 路由**
-----
在初始化应用的代码中需要配置router选项,router是一个对象,对象的键唯一标识一个页面,值为一个对象,有两个属性component和config
* component
返回一个Promise对象,代表这个页面的逻辑处理类。
如用Webpack进行开发的时候可以定义成
```js
component: import(/* webpackChunkName: "about" */ "../pages/about/index.vue")
```
* config
* transition: {string} - 过度类型
* mode: {string} - 启动类型
* intentfilterAction: {string} - 通知的actioon
* intentfilterCategorys: {string} - 通知的categorys
* intentfilterPriority: {string} - 通知的proirity
**3. 编写页面对应的Page**
--------------
index.vue
```html
indexindex