清华主页 - 清华新闻 - 综合时讯 - 正文

小程序面试题全(offer直接给他赢)

各位朋友,很久没见了,#xff00c;突然想起微信小程序没有给大家整个面经,废话不多说󿀌开干!

1.wxml和html有什么区别?

①使用不同的标签。

②提供wxml和vuee.类似于js模板语法的模板语法,而html没有。

③html浏览浏览器,微信或开发工具中的wxml。

④wxml标签必须是结束符

2.wxs和css有什么区别?

①不同的单位:css:px,wxss:rpx。

②wxss不能使用本地图片󿀌需要使用 @import 引入 外联风格文件󿀌地址为相对路径。

③WXSS 和 CSS 大多数情况下,语法是相似的,但 WXSS 有一些特定的扩展和限制。例如,WXSS 支持一些特定的选择器,如 .class、#id、element、element,element、:pseudo-class、::pseudo-element 等,但它不支持 CSS 一些高级选择器,如属性选择器 [attribute]。

3.小程序的双向绑定与Vue不同。

3.小程序的双向绑定与Vue不同。


小程序 直接使用this.data.key = value 是 不能在视图中更新。


必须使用 this.setData({ key : value }) 来更新值。
例如栗子:
首先,用bindinput触发input输入框中的值。
2,使用data-name获取更改数据的内容。
3, bindinput触发后,通过e方法.currentTarget.dataset.name获取变更后的内容。

4, 通过this.setData()改变data-name绑定的参数。

4.小程序的生命周期是什么?
当你在脑海中问到这个问题时,你需要想到三种󿀌这是面试官想要得到的答案。
①应用的生命周期。
②页面的生命周期。

③组件的生命周期。
应用生命周期。

app的生命周期函数是app.js中调用的,通过App(Object)函数用于注册一个小程序,指定其小程序的生命周期回调。生命周期。
说明。onLaunch。
小程序初始化完成时触发#xff0c;全局只触发一次。onShow。
小程序启动󿀌或从后台进入前台显示时触发。onHide。
当小程序从前台进入后台时触发。onError。
小程序脚本错误或小程序脚本错误 API 调用报错时触发。onPageNotFound。
当不存在时,触发小程序要打开的页面。onUnhandledRejection()。
未处理的小程序 Promise 拒绝时触发。onThemeChange。

触发系统切换主题。
页面生命周期。

页面生命周期函数是当你进入/切换到一个新页面时,将调用的生命周期函数,也通过App(Object)函数用于注册一个页面。生命周期。说明。
作用。onLoad。生命周期回调-监控页面加载。
发送请求以获取数据。onShow。生命周期回调-监控页面显示。
请求数据。onReady。生命周期回调-监控页面首次渲染完成。
获取页面元素(少用)onHide。回调生命周期-隐藏监控页面。
终止任务󿼌如定时器或播放音乐。onUnload。生命周期回调-监控页面卸载。

终止任务。
组件的生命周期。

组件的生命周期,指组件本身的一些函数,这些函数在特殊时间点或遇到一些特殊框架事件时自动触发,Component通过Componentnt(Object)注册组件。生命周期。
说明。created。
生命周期回调-监控页面加载。attached。
生命周期回调-监控页面显示。ready。
生命周期回调-监控页面首次渲染完成。moved。
回调生命周期-隐藏监控页面。detached。
生命周期回调-监控页面卸载。error。

当组件方法抛出错误时执行。
当组件实例刚刚创建时,#xff0c; created 触发生命周期,此时,组件数据 this.data 就是在 Component 定义在构造器中的数据 data , 此时无法调用 setData。
组件完全初始化,进入页面节点树后, attached 触发生命周期。此时, this.data 已初始化为组件的当前值。这个生命周期非常有用󿀌这个时候可以做绝大多数的初始化工作。

组件离开页面节点树后󿀌 detached 触发生命周期。退出页面时,如果组件仍在页面节点树中,则 detached 会被触发。
特殊的生命周期。

它们与组件没有很强的相关性,但有时组件需要知道,便于组件内部处理,这种生命周期被称为“组件所在页面的生命周期”,在 pageLifetimes 定义段中的定义。生命周期。
说明。show。
显示组件所在的页面时执行。hide。
当组件所在的页面被隐藏时执行。Component。(。{ 。// 隐藏页面。}。,}。}。

)。

5.微信小程序中路由跳转的方式有哪些?区别?
wx.navigateTo(Object)。
用于保留当前页面并跳转到应用程序中的页面,使用 wx.navigateBack可以返回到原始页面。

请添加图片描述

页面不是特别多的小程序,通常推荐使用 wx.navigateto跳转, 回到原页,提高加载速度。当页面特别时,不建议使用。
wx.redirectTo(Object)。
重定向,页面过多时,被保留的页面会挤压微信分配给小程序的内存,或者达到微信的限制 10 在层页堆栈的情况下,我们应该考虑选择 wx.redirectTo。
wx.redirectTo()关闭当前页面,跳转到应用程序中的某个页面。

请添加图片描述

这种跳转,可以避免跳转前页面占据运行内存,但返回时,页面需要重新加载󿀌返回页面的显示时间增加了。
wx.switchTab(Object)。

跳转到 tabBar 页面,并关闭所有其他非 tabBar 页面。
wx.navigateBack(Object)。

用于关闭当前页面,返回上一页或多层页面,开发人员可以通过 getCurrentPages() 获取当前页面栈,设置对象的delta属性可以决定返回多个层次。
wx.reLaunch(Object)。

请添加图片描述
关闭所有页面󿀌在应用程序中打开页面,返回时跳到主页。

  • 总结。
  • navigateTo 保留当前页面,跳转到应用程序中的页面,使用 wx.navigateBack 可返回原页。
  • redirectTo 关闭当前页面󿀌跳转到应用程序中的某个页面。
  • switchTab 跳转到 tabBar 页面,同时,关闭其他非tabarar 页面。
  • navigateBack 返回上一页。

reLanch 关闭所有页面󿀌在应用程序中打开一个页面。

  • 关于页面的堆叠和堆叠。
  • avigateTo 新页面进入栈。
  • redirectTo 当前页面出栈󿀌新页面进入栈。
  • navigateBack 页面不断出栈󿀌直到目标返回页󿀌新页面进入栈。
  • switchTab 页面全部出栈󿀌只留下新的 Tab 页面。

reLanch 页面全部出栈󿀌只留下新页面。

6.小程序如何实现下拉刷新?
方案 一 :
通过在 app.json 中, 将 “enablePullDownRefresh”: true, 打开全局下拉刷新。
或者通过在 组件 .json , 将 “enablePullDownRefresh”: true, 下拉刷新单组件。
方案二:

scroll-view : 使用滚动组件 自定义刷新󿀌通过 bindscrolltoupper 属性, 滚到顶部/左侧,会触发 scroltouper事件c;因此,我们可以使用这个属性,实现下拉刷新功能。

7.bindtap 和 catchtap 区别。
7.bindtap 和 catchtap 区别

相同点: 都是点击事件。

  1. 不同点: bindtap 不会阻止冒泡󿀌 catchtap 可防止冒泡。
    8.小程序传输数据的方法有哪些?
    使用全局变量。
    在 app.js 中的 this.globalData = { } 将要存储的数据放入其中。
  2. 在 组件.js 中, 头部 引入 const app = getApp(); 获得全局变量。
    直接使用 app.globalData.key 赋值和获取值。
  3. 使用 路由。

wx.navigateTo 和 wx.redirectTo 时,可以通过在 url 后 拼接 + 变量, 然后在 目标页面 通过在 onLoad ࿰在周期中c;传递的值通过参数获得。

使用本地缓存。
9.小程序 wx:if 和 hidden 的区别。

wx:if : 切换消耗较高。
hidden : 初始渲染消耗较高。

使用场景:

经常切换使用 hidden, 使用条件在运行过程中发生变化 wx: if。
10.如何包装小程序请求。

封装 wx.request 要求传递所需的参数( url , data , method , success 成功回调 , fail 失败回调 ) , 常用的封装方法 POST , GET , DELETE , PUT … 最后导出这些方法。

然后新建一个 api.js 文件,导入包装的方法,然后转移相应的方法,传递数据。封装wx.request。 var。app。=getApp。(。)。;//获取小程序全局唯一的app实例。 var。host。='

2025-06-24 12:06:13

相关新闻

清华大学新闻中心版权所有,清华大学新闻网编辑部维护,电子信箱: news@tsinghua.edu.cn
Copyright 2001-2020 news.tsinghua.edu.cn. All rights reserved.