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>

相关推荐
进阶的鱼20 小时前
React+ts+vite脚手架搭建(四)【mock篇】
前端·javascript·react.js
Jagger_20 小时前
Scrum敏捷开发流程规范
前端·后端
Value_Think_Power20 小时前
变量->约束->目标
前端
开源框架20 小时前
招商银行模拟器app,网银模拟生成器,jar+c++组合模板
前端
日月之行_20 小时前
React 19.2正式发布啦!
前端
奔赴_向往20 小时前
抛弃虚拟DOM:Vue Vapor如何实现性能飞跃?
前端
FogLetter20 小时前
从「关键词匹配」到「语义理解」:我是如何用 Embedding 让搜索「听懂人话」的?
前端·aigc·openai
细节控菜鸡20 小时前
【2025最新】uniapp 中基于 request 封装实现多文件上传完整指南
uni-app
fakaifa20 小时前
【全开源】企业微信SCRM社群营销高级版系统+uniapp前端
uni-app·开源·企业微信·scrm·源码下载·企业微信scrm
小高00720 小时前
🤔Proxy 到底比 defineProperty 强在哪?为什么今天还在聊 Proxy?
前端·javascript·vue.js