快应用入门学习记录-01

0、项目结构

├── sign                      rpk包签名模块
│   └── debug                 调试环境
│       ├── certificate.pem   证书文件
│       └── private.pem       私钥文件
├── src
│   ├── Common                公用的资源和组件文件
│   │   └── logo.png          应用图标
│   ├── Demo                  页面目录
│   |   └── index.ux          页面文件,可自定义页面名称
│   ├── app.ux                APP文件,可引入公共脚本,暴露公共数据和方法等
│   └── manifest.json         项目配置文件,配置应用图标、页面路由等
└── package.json              定义项目需要的各种模块及配置信息

//src:项目源文件夹
//sign:签名模块,当前仅有debug签名,如果内测上线,请添加release文件夹,增加线上签名

0.1、manifest.json文件详解

a--应用包名(package)
{
  "package": "com.example.demo"
}
b--应用名称(name)
{
  "name": "太平洋网络"
}
c--应用图标(icon)
{
  "icon": "/Common/logo.png"
}
d--应用版本名称、版本号(versionName、versionCode)
{
  "versionName": "1.0",
  "versionCode": 1
}
e--配置接口列表(features)->内部api需先引入
{
  "features": [{ "name": "system.fetch" }]
}
f--页面router
   f.1---首页 (router.entry)固定
   "假设工程根目录如下所示"
   └── src
    └── Demo 页面目录,存放各自页面私有的资源文件和组件文件
        └── index.ux  页面文件,文件名不必与父文件夹相同
    {
      "router": {
        "entry": "Demo"
      }
    }
    f.2---其他页面->页面路由对象(router.pages)
    component:页面对应的 ux 文件名
    path:页面路径,不填则默认为页面名称(<ProjectName>/src目录下,
    页面目录的相对路径)假设工程根目录如下所示
    └── src
    |── Demo 页面目录,存放各自页面私有的资源文件和组件文件
    |   └── index.ux   页面文件,文件名不必与父文件夹相同
    └── Doc
        └── Layout  页面目录,存放各自页面私有的资源文件和组件文件
            └── index.ux     页面文件,文件名不必与父文件夹相同
    {
      "router": {
        "pages": {
          "Demo": {
            "component": "index"
          },
          "Doc/Layout": {
            "component": "index"
          }
        }
      }
    }
g--display,页面公用的默认 UI 显示
    {
      "display": {
        "pages": {
          "Demo": {
            "titleBarText": "Demo页面的标题"
          }
        }
      }
    }

1、生命周期

页面生命周期:onInit、onReady、onShow、onHide、onDestroy、onBackPress
、onMenuPress
页面的状态:显示、隐藏、销毁
APP 的生命周期:onCreate、onDestroy

a-"onInit()"
表示ViewModel的数据已经准备好,可以开始使用页面中的数据
b-"onReady()"
表示ViewModel的模板已经编译完成,可以开始获取
DOM 节点(如:this.$element(idxxx))
c-"onDestroy()"
页面被销毁时调用,被销毁的可能原因有:用户从当前页面返回到上一页,
或者用户打开了太多的页面,框架自动销毁掉部分页面,避免占用资源
所以,页面销毁时应该做一些释放资源的操作,
如:取消接口订阅监听geolocation.unsubscribe()
判断页面是否处于被销毁状态,可以调用ViewModel的$valid属性:
true表示存在,false表示销毁
d-"onBackPress()"
当用户点击返回实体按键、左上角返回菜单、调用返回API时触发该事件
e-"onMenuPress()"
当使用原生的顶部标题栏时,可以通过manifest.json中
的menu属性配置是否显示右上角的菜单

2、数据渲染

总结:与微信小程序基本相同,使用{{}}方式渲染,在for循环中,
默认"item=$item"、默认"index=$idx"
一些条件判断例如微信->wx:if在快应用中都是直接将wx:去掉成了if="{{}}"、

3、页面切换

通过组件 a 切换页面和传递参数
<a href="/PageParams/receiveparams">跳转到接收参数页面</a>
 <!-- 以非'/'开头的应用内页面的名称 -->
<a href="PageParams/receiveparams">跳转到接收参数页面</a>
<a href="tel:10086">调起电话</a>
<a href="sms:10086">调起短信</a>
<a href="mailto:example@xx.com">调起邮件</a>
<!-- 打开webview加载网页 -->
<a href="https://www.baidu.com/">打开网页</a>
4、传递参数
?id=99&name=xxx
5、通过接口 router 切换页面和传递参数
// 导入模块
import router from '@system.router'
//使用方法
router.push({
    uri: '/PageParams/receiveparams'
})
6、接收参数
"protected 内定义的属性"
//使用方法
<script>
  export default {
    protected: {
      key: ''
    },
    onInit () {
      this.$page.setTitleBar({ text: '接收参数' })

      // js中输出页面传递的参数
      console.info('key: ' + this.key)
    }
  }
</script>

7、事件绑定

onclick
简写:@click

8、事件监听

//注册事件
"$on('eventName')"
可监听$emit()、 $dispatch()、 $broadcast()
//触发事件
"$emit(eventName)"

"阻止事件冒泡:evt.stopPropagation()"
onChildClickHandler (evt) {
    // 阻止事件冒泡
    "evt.stopPropagation()"
}

9、父子组件通信

同vue

10、监听页面数据变化watch

data() {
    return {
      number:0
    }
},
onInit() {
    // 监听数据变化
    this.$watch('number', 'changeNumber')
},
changeNumber(newV, oldV){
    console.info(`监听数据变化:`, newV, oldV)
}

11、组件

"组件引入"
<import name="XXX" src="XXX"></import>

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容