uni-app学习我们必须先明白这些东西

学习uni-app看文章可以了解得更简单,但是想要全面还得看官方文档。

生命周期

vue生命周期

  • vue 自带的生命周期在uniapp中都能使用

    比如onMounted()、onBeforeMount()等等。

页面生命周期

  • uniapp 提供了 页面生命周期,

比如:

copy 复制代码
     1. onLoad监听页面加载。

     2. onShow监听页面显示,页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面。
     
     3. onPullDownRefresh 监听用户下拉动作,一般用于下拉刷新。
     
     4. onPageScroll监听页面滚动。
     等等

应用生命周期

  • 整个app应用的状态变化,只能在App.vue使用

比如:

copy 复制代码
 1. onLaunch  当`uni-app` 初始化完成时触发(全局只触发一次),参数为应用启动参数。
 
 2. onShow   当 `uni-app` 启动,或从后台进入前台显示,参数为应用启动参数。
 
 3. onHide  当 `uni-app` 从前台进入后台。  
 
 4. onError 当 `uni-app` 报错时触发

全局变量

  • vue2:Vue.prototype.name = '测试名称' (options API)
  • vue3: 在App.vue中设置 uni-app 的 globalData 是指一个全局的数据对象,可以在任何页面中进行访问和修改。它类似于 Vue.js 中的全局变量,适用于小型或中型的 uni-app 应用程序中。

可以通过以下步骤来定义和使用 globalData:

  1. 在 App.vue 文件中定义一个空的对象 globalData,例如:
Copy 复制代码
export default {
  globalData: {}
}
  1. 在应用程序中的任何页面中,都可以使用 getApp 方法获取 app 实例,并通过 app.globalData 访问全局数据对象,例如:
Copy 复制代码
const app = getApp()
console.log(app.globalData)
  1. 可以在任何页面中修改全局数据对象的值,例如:
Copy 复制代码
const app = getApp()
app.globalData.userInfo = { name: 'Tom', age: 18 }

需要注意的是,globalData 中的数据会在整个应用程序中共享,因此需要谨慎使用,避免出现意料之外的问题。

路由跳转

在 uni-app 中,可以使用内置的 $router 对象来进行页面之间的路由跳转。下面是一些常见的路由跳转方式:

  1. 使用 navigateTo 方法进行普通页面跳转:
javascriptCopy 复制代码
// 在当前页面跳转到目标页面
uni.navigateTo({
  url: '/pages/targetPage/targetPage'
})
  1. 使用 redirectTo 方法进行重定向跳转:
javascriptCopy 复制代码
// 关闭当前页面,并跳转到目标页面
uni.redirectTo({
  url: '/pages/targetPage/targetPage'
})
  1. 使用 reLaunch 方法进行整体重启跳转:
javascriptCopy 复制代码
// 关闭所有页面,并跳转到目标页面
uni.reLaunch({
  url: '/pages/targetPage/targetPage'
})
  1. 使用 switchTab 方法进行底部标签栏页面跳转:
javascriptCopy 复制代码
// 切换底部标签栏的页面
uni.switchTab({
  url: '/pages/tabPage/tabPage'
})
  1. 使用 navigateBack 方法进行页面返回:
javascriptCopy 复制代码
// 返回上一页(可指定返回页面数)
uni.navigateBack({
  delta: 1
})

 
  1. 使用html标签跳转
html 复制代码
<navigator url="/pages/about/about">去关于页面</navigator>

需要注意的是,上述方法中的 url 参数指定了目标页面的路径。路径可以是绝对路径(以 '/' 开头),也可以是相对路径(相对于当前页面)。另外,uni-app 还支持传递参数和接收参数,可以通过 url 参数或 query 参数实现。

注意:当我们新建页面后pages.json里面会主动帮我们配置好路由。如果想渲染图标,通过点击图标来切换页面,还可以通过"tabBar"来实现:

pages.json 复制代码
"tabBar":{
"list": [
			{
				"pagePath": "pages/index/index",
				"text": "发现",
				"iconPath": "/static/icon/wangyiyun1.png",
				"selectedIconPath": "/static/icon/wangyiyun1-active.png"
			}
         ]
         }

"tabBar"里面还有很多属性,可以通过官方文档学习。

插槽

子组件向父组件通信和vue里面的方法相同,只要创建一个component目录就不需要在各个页面引入,但是当父组件想添加一个值在子组件则需要添加一个插槽。

子组件:放置一个插槽 <slot name="content"></slot>

父组件: 填充内容到插槽 <template v-slot:content>内容</template>

相关推荐
Irene199116 分钟前
JavaScript脚本加载的两种方式:defer/async 的区别
前端·javascript·php
天若有情67320 分钟前
开篇必看:零基础吃透前端,别再盲目死记硬背了
前端
RulerMike26 分钟前
three 实现简单机械臂逆运动
前端·ai编程·three.js
darkb1rd28 分钟前
从“会聊天”到“会搭页面”:一次 TinyEngine + MCP 的前端智能化实战思路
前端
社恐的下水道蟑螂1 小时前
从奶茶店彻底搞懂 SSR!从零到拿捏服务端渲染,看完面试吹牛逼不卡壳
前端·react.js·性能优化
EnCi Zheng1 小时前
M1-如何转换为HTML
前端·html
luanma1509801 小时前
Laravel 8.X重磅特性全解析
前端·javascript·vue.js·php·lua
kyriewen1 小时前
为什么我的代码在测试环境跑得好好的,一到用户电脑就崩?原来凶手躲在地址栏旁边
前端·javascript·chrome
Wect1 小时前
LeetCode 215. 数组中的第K个最大元素:大根堆解法详解
前端·算法·typescript
ETA81 小时前
面试官:说说事件冒泡与委托?这是我见过最透彻的回答
前端·javascript