uniapp 官网 pages.json
uniapp 官网 app-plus
{
"pages": [
{
"path": "pages/xxx/xxx",
"style": {}
},
],
"globalStyle": {}
}
常用配置项:
pages
设置页面路径及窗口表现
globalStyle
设置默认页面的窗口表现,以下配置可在 globalStyle
全局设,也可在 pages
中 style
单个页面设
"navigationStyle":"custom",
导航栏样式,custom 表示取消默认导航栏"navigationBarTitleText": "xxx"
导航栏标题"navigationBarTitleSize": "20rpx",
导航栏标题文字大小"navigationBarTextStyle": "black",
导航栏标题颜色"navigationBarBackgroundColor": "#FFFFFF"
导航栏背景颜色"enablePullDownRefresh": false
是否开启下拉刷新"disableScroll": true
整体页面不能上下滚动(只在 style 中有效,在 globalStyle 中无效)"app-plus":{}
配置编译到 App 平台时的特定样式
"background": "transparent"
背景透明"backgroundColor": "rgba(0,0,0,0)"
背景颜色"scrollIndicator": false
滚动条,不显示"animationType": "fade-in"
窗口显示动画,淡入"animationDuration": 200
窗口显示动画持续时间"softinputMode": "adjustResize"
软键盘弹出模式 adjustResize、adjustPan 关于软键盘弹出的逻辑说明"popGesture": "none"
侧滑返回功能(iOS 上),“close”(启用侧滑返回)、“none”(禁用侧滑返回)安卓若要禁用侧滑返回,使用 onBackPress(event)
生命周期函数
uni-app 自定义返回逻辑教程
uniapp 关闭默认返回安卓和 ios
uniapp 修改 navigationBar 字体大小
uni_modules 是 uni-app 的插件模块化规范,可直接使用也可自己开发插件
使用时,在自己项目下新建 uni_modules 文件夹
在插件市场查找插件,选择使用 HBuilderX 导入插件
整个插件文件夹(如:uni-nav-bar 文件夹)就会出现在自己项目的 uni_modules 文件夹下
之后无需 import ,
标签就能使用,因为该文件夹下自带 package.json 文件
图标 uni-icons 图标名称可在这里查找
uniapp 官网 项目结构
vuex 中 this. s t o r e . c o m m i t 和 t h i s . store.commit 和 this. store.commit和this.store.dispatch 的用法
this.$store.dispatch()
与 this.$store.commit()
方法:
this.$store.commit()
用来触发同步操作 commit => mutations
this.$store.commit('方法名',值)
this.$store.state.方法名
this.$store.dispatch()
用来触发异步操作 dispatch => actions
this.$store.dispatch('方法名',值)
this.$store.getters.方法名
// store 文件夹下 xxxSrv.js // xxx.vue 中调用 store,不用写 import
export default {
state: {
// this.$store.state.xxx
xxx: [],
yyy: { name: x, xx: 1 },
},
getters: {
// this.$store.getters.xxx
xxx,
},
// mutations 更改状态的唯一方法
mutations: {
// this.$store.commit("xxxSrv/mfun", xxx);
mfun(x) {},
},
actions: {
// await this.$store.dispatch("xxxSrv/afun", xxx);
async afun(x) {
context.commit("mfun", xxx);
},
},
};
manifest.json 启动配置
{
"name" : "xxx",
"app-plus" : { /* 5+App特有相关 */
"splashscreen" : {
"alwaysShowBeforeRender" : false, // 是否等待首页渲染完毕后再关闭启动界面
"waiting" : true, // 是否在程序启动界面显示等待圈或雪花
"autoclose" : false, // 是否自动关闭启动界面
"delay" : 0
},
"modules" : {}, /* 模块配置 */
"distribute" : { /* 应用发布信息 */
"android" : { /* android打包配置 */
"permissions" : [],
"abiFilters" : [ "armeabi-v7a", "arm64-v8a" ]
},
"ios" : {}, /* ios打包配置 */
"sdkConfigs" : { /* SDK配置 */
"ad" : {}
},
}
},
"quickapp" : {}, /* 快应用特有相关 */
"mp-weixin" : {}, /* 小程序特有相关 */
}
<script>
export default {
onLaunch: function () {
console.log("App Launch");
plus.navigator.setFullscreen(true); // 撑满全屏
plus.screen.lockOrientation("portrait"); // 锁定竖屏
// 登录后
plus.navigator.closeSplashscreen(); // 关闭加载页
},
onShow: function () {
console.log("App Show");
},
onHide: function () {
console.log("App Hide");
},
};
script>
<style>
/* 1. 每个页面公共css */
@import "./common/uni.css";
style>
<style lang="scss">
/* 2. 如果引入scss,要加上 lang="scss" */
@import "./common/base.scss";
style>
uni-app 横屏设置
plus.screen.lockOrientation('portrait');
import App from "./App"; // 引入了 App.vue
// #ifndef VUE3
import Vue from "vue"; // 引入了 Vue 库
Vue.config.productionTip = false;
App.mpType = "app";
const app = new Vue({
// 创建了一个vue实例
...App,
});
app.$mount(); // 挂载 Vue 实例
//即
//app.$mount()
//Vue({...App}).$mount()
// #endif
// #ifdef VUE3
import { createSSRApp } from "vue";
export function createApp() {
const app = createSSRApp(App);
return {
app,
};
}
// #endif
// app.$mount()
// createSSRApp(App).$mount()
Vue3 中的应用是通过使用 createApp 函数来创建的,参数是根组件(例:HelloVueApp)
Vue.createApp({...}).mount('#hello-vue')
<template> template>
<script>
import xxx from "@/xxx/xxx.js";
import xxx from "yyy";
import { xxx } from "yyy";
export default {
data() {
return {
name: "",
};
},
computed: {},
onReady() {},
onLoad() {},
watch: {},
methods: {},
};
script>
<style>style>
中必须先有一层
<template>
<view> ... view>
template>
<template>
<view> ... view>
<view> ... view>
template>
uni-app watch 事件监听三种用法
data(){ }
或 ...mapState({ })
中定义的数据watch: {
nameList: {
handler(item) {
console.log(item); // 当 nameList 的值改变时,执行该语句
},
immediate: true, // 普通监听(可监听到第一次绑定的变化)
deep: true // 深度监听(可监听对象内属性变化)
}
}
uniapp 官网 应用生命周期
函数名 | 说明 |
---|---|
onLoad | 监听页面加载,其参数为上个页面传递的数据,参数类型为 Object (用于页面传参),参考示例 |
onShow | 监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面 |
onReady | 监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发 |
uni-app 组件支持的生命周期,与 vue 标准组件的生命周期相同