前端uniapp、微信小程序面试题整理

一、微信小程序页面传参的方法

1.通过url

2.通过uni.navigateTo的success回调,下游页面通过eventChannel.$emit传参

// 在起始页面跳转到test.vue页面,并监听test.vue发送过来的事件数据
uni.navigateTo({
  url: '/pages/test?id=1',
  events: {
    // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
    acceptDataFromOpenedPage: function(data) {
      console.log(data)
    },
    someEvent: function(data) {
      console.log(data)
    }
    ...
  },
  success: function(res) {
    // 通过eventChannel向被打开页面传送数据
    res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'data from starter page' })
  }
})

// 在test.vue页面,向起始页通过事件传递数据
onLoad: function(option) {
  const eventChannel = this.getOpenerEventChannel();
  eventChannel.emit('acceptDataFromOpenedPage', {data: 'data from test page'});
  eventChannel.emit('someEvent', {data: 'data from test page for someEvent'});
  // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
  eventChannel.on('acceptDataFromOpenerPage', function(data) {
    console.log(data)
  })
}

 3.使用getApp().gloabData

js中操作globalData的方式如下:

赋值:getApp().globalData.text = 'test'

取值:console.log(getApp().globalData.text) // 'test'

4.全局的自定义事件

uni.$emit、uni.$on、uni.$once、uni.$off

5.浏览器缓存

使用wx.setStorageSync(key, value)将目标页面需要的数据存储到本地浏览器缓存中,在目标页面使用getStorageSync(key)的方式将数据又重缓存中读取出来,一般用于存储token,详情信息等

6.vuex/pinia

7.事件绑定

适用于父子组件间的数据传输和通信,子组件通过this.$emit(name, value)方法传递数据给父组件,父组件在子组件上自定义一个事件,就可以监听并接收子组件传递过来的数据

二、应用和小程序层级的生命周期

1.应用级别的

onLaunch用户首次打开,当小程序初始化完成时,会触发onLaunch(全局触发一次)
onShow小程序启动或从后台进入前台时,触发onShow,监听小程序显示
onHide小程序隐藏或从前台进入后台,触发onHide
onError小程序发生脚本错误或 API 调用报错时触发

2.微信小程序级别

onLoad    监听页面加载,触发onLoad,此时可以发送请求获取数据
onShow    监听页面显示,触发onShow,页面显示,此时可以请求数据
onReady    监听页面初次渲染完成,触发onReady,渲染⻚⾯元素和样式,此时可以获取页面元素的信息
onHide    监听页面隐藏,如果小程序跳转到其它页面或进入后台运行时,触发onHide,此时可以终止任务
onUnload    监听页面卸载,调用wx.redirectTo() 或wx.navigateBack(),触发onUnload,此时可以终止任务
onResize   窗口尺寸改变时触发,最低基础库:2.4.0

三、小程序如何实现下拉刷新和上拉加载更多

1.下拉刷新
首先在json文件中开启下拉刷新功能(enablePullDownRefresh :true),然后onPullDownRefresh通过该方法监听是否产生了下拉的动作,如果有就会执行响应的操作,可以在函数里面进行http请求等;注意这里需要进行手动的关闭,不然loading效果会一直在,可以使用wx.stopPullDownRefresh()停止下拉刷新。
2.上拉加载更多
使用onReachBottom事件处理函数可以监听到是否上拉的操作,然后再函数体里面可以进行数据请求等操作,实现上拉加载更多;默认的触底距离是50px可以在json文件中通过onReachBottomDistance进行自定义更改

四、移动端如何适配不同屏幕尺寸

参考地址https://blog.csdn.net/smznbhh/article/details/132959204

使用meta-viewport标签通过配置例如设置width=device-width、initial-scale=1、minimum-scale=1等。

Uniapp 是一个跨平台的开发框架,可以在不同的平台上实现一次编码,多端部署,非常适合开发微信小程序。以下是 Uniapp 微信小程序面试题的答案: 1. Uniapp 是什么? Uniapp 是一个跨平台的开发框架,可以基于 Vue.js 做开发,实现一次编码多端部署,包括微信小程序、H5、APP(安卓和 IOS)、快应用等。 2. 与传统微信小程序开发的区别是什么? 与传统微信小程序开发相比,Uniapp 开发更加高效,可以大大减少开发时间,同时也可以让开发者更加便捷地实现一次编码多端部署。 3. Uniapp 微信小程序如何实现多端适配? Uniapp 可以使用自动适配方案,在不同机型上自动调整组件大小和布局。如果需要自定义适配方案,可以根据不同平台的 CSS 尺寸单位和样式特性定义不同的样式来实现多端适配。 4. 如何添加微信小程序原生组件? 可以在 Uniapp 项目中使用相应的组件,然后在微信小程序中进行适配。如果需要使用微信小程序原生组件,可以使用插件的形式将原生组件导入 Uniapp 项目中使用。 5. 如何进行微信小程序支付? 可以使用 uni.request 接口向自己服务端请求支付的相关参数,然后调用 uni.requestPayment 接口发起支付请求,支付成功后进行相应的处理。在开发过程中需要注意安全性和用户体验,避免出现支付问题。 总之,Uniapp 微信小程序的开发让开发者更加容易实现一次编码多端部署,提高开发效率,也让用户体验更加顺畅。在开发过程中需要根据不同的需求和平台特性进行适配,保证产品的质量和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值