前言:uinapp是使用vue.js开发的框架,可以一套代码适用多端。
接下来了解一下uinapp的目录结构:
uinCloud 云目录
components 存放组件
hybrid App端放本地html文件的目录
platforms 存放各平台专用页面的目录
pages 业务页面文件存放目录
static 存放本地静态资源
uin_modules 存放插件
wxcomponents 存放小程序组件
nativeplugins App原生插件
unpackage 非工程代码,一般存放运行或发行的编译结果
main.js 入口文件
App.vue 配置全局样式以及监听,应用生命周期
mainfest.json 配置应用名称、appid、logo、版本等打包信息
page.json 配置页面路由、导航条、选项卡等页面类信息
uin.scss uinapp内置的常用样式变量,uinapp官方扩展及插件市场上的很多三方插件均使用了这样的样式
页面简介:
uinapp的页面就是符合vue的SFC规范的.vue文件或.nvue文件
.vue使用的是webview渲染,.nvue使用的是原生渲染
vue的SFC规范:一个SFC中最多一个<template>块和一个<script>脚本块,可以有多个<style>标签;vue-loader(加载程序)将会使用块名来查找对应的loader进行处理,所有语言块都支持src导入
nvue: 页面均采用flex布局,不支持其他布局方式,flex默认为竖向排列; nvue不支持scss和less 不能在style中引入字体文件 nvue不支持模拟器运行;nvue的
应用首页:在pages.json文件中pages配置项中的第一个页面当作当前工程的首页
生命周期:uinapp采用小程序的生命周期
页面调用接口:
getApp() 获取当前应用实例,一般用于获取全局数据
注意:1.不能再定义于App()内的函数中,或调用App之前调用getApp()
2.通过getApp()获取实例后,不要私自调用生命周期
3.在首页nvue中使用不一定可以获取真正的App对象
getCurrentPages() 获取当前页面栈的实例,以数组形式按栈顺序给出,第一个元素为首页,最后一个元素为当前页面
注意:getCurrentPages()只用于展示页面栈,请勿修改,避免造成页面状态错误
$getAppWebview() 在getCurrentPages()获得的页面中可以使用$getAppWebview获取当前页面的对象实例
页面通讯(页面传值):
uin.$emit(‘自定义事件名’,{传递参数}) 触发全局自定义事件
uin.$on('事件名',回调函数) 监听全局自定义事件
uin.$once('事件名',回调函数) 监听全局自定义事件,只触发一次,触发后移除监听器
uin.$off(['事件名',回调函数]) 移除全局自定义事件监听器,不给参数移除所有事件