微信小程序面试题

本文详细列举了微信小程序面试中的常见问题,包括wxml与HTML、WXSS与CSS的异同,小程序的主要目录和文件作用,以及数据绑定、传值方法、事件处理等方面的对比。还探讨了小程序与H5、Vue的差异,缓存数据、网络请求和模块化等方面的知识。此外,介绍了小程序的生命周期、更新机制和性能优化策略,以及与其他技术的比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.请谈谈wxml与标准的html的异同?

  • 标签名字有点不一样
  • 多了一些 wx:if 这样的属性以及 { { }} 这样的表达式
  • 开发工具限制:WXML仅能在微信小程序开发工具中预览,而HTML可以在浏览器内预览。
  • 组件封装不同:WXML对组件进行了重新封装,为后续的性能优化提供了可能,同时避免开发者写出低质量的代码。
  • 没有DOM树:小程序运行在JS Core内,没有DOM树和window对象,没有办法使用相关API。

 

2.请谈谈WXSS和CSS的异同?

  • 新增了rpx尺寸单位   750rpx

  • wxss 背景图⽚只能引⼊外链,不能使⽤本地图⽚

  • 提供了全局的样式和局部样式

         项目根目录中的app.wxss会作用于所有小程序页面局部页面 .WXSS 样式仅对当前页面生效
    
  • WXSS仅支持部分css选择器

       .class 和 #idelement并集选择器、后代选择器::after 和 ::before 等伪类选择器 
    

 

3.请谈谈微信小程序主要目录和文件的作用?

app.js 逻辑文件,主要用来注册小程序全局实例。监听并处理小程序的生命周期函数,声明全局变量等。
app.json 公共设置文件,配置小程序全局设置。底部tab,标题栏和路由等设置。
app.wxss 主样式表文件,类似HTML的css文件。全局配置的样式文件。该文件不是必需的。
小程序的4个页面文件:
.js文件 页面逻辑文件,页面的逻辑,请求和数据处理。
.wxml文件 页面结构文件,用来设计页面的布局、数据绑定等。
.wxss文件 页面样式表文件,用来定义页面中用到的各类样式表。该文件不是必需的。
.json文件 页面配置文件。配置当前页面标题和引入组件。其在页面中不可缺少。

 

4.简单描述下微信小程序的相关文件类型?

微信小程序项目结构主要有四个文件类型:wxml;wxss;json;js

.WXML:是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面结构

.WXSS:描述 WXML 的组件样式。css使用px、wxss使用rpx

.js:逻辑处理,网络请求。

.json:小程序设置,如页面注册,页面标题tabBar

 

5.请谈谈小程序的双向绑定和vue的异同?

大体相同,但小程序之间this.data的属性是不可以同步到视图的,必须调用this.setData()方法

 

6.微信小程序有哪些传值(传递数据)方法?

1. 页面跳转或重定向时,使用url带参数传递数据(路由传值

      使⽤ 路由wx.navigateTo 和 wx.redirectTo 时,可以通过在 url 后使用 ? 分隔,参数键与参数值用 = 相连,不同参数用 & 分隔。 然后在⽬标⻚⾯通过在 onLoad 周期中,通过参数来获取传递过来的值。
2. 使用本地存储传递参数
3. 使用全局变量传递数据

     使⽤全局变量在 app.js 中的 this.globalData = { } 中放⼊要存储的数据。

     在 组件.js 中, 头部 引⼊ const app = getApp();

      获取到全局变量直接使⽤app.globalData.key 来进⾏赋值和获取值

4. 给html元素添加data-*属性来传递值,然后通过e.currentTarget.datasetonload的param参数获取(data- 名称不能有大写字母,不可以存放对象)
5. 设置id 的方法标识来传值,通过e.currentTarget.id获取设置的id值,然后通过设置全局对象的方式来传递数据
6. 在navigator中添加参数数值

 

7.bindtap和catchtap的区别?

相同点: 都是点击事件

不同点: bindtap 不会阻⽌冒泡, catchtap 可以阻⽌冒泡。

 

8.wx.navigateTo(),wx.redirectTo(),wx.switchTab(),wx.navigateBack(),wx.reLaunch()的区别?

wx.navigateTo():保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面
wx.redirectTo():关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面
​wx.switchTab():跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
​wx.navigateBack()关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层
wx.reLaunch():关闭所有页面,打开到应用内的某个页面
 

 

9.微信小程序与H5的区别?

  • 运行环境不同(小程序在微信运行,h5在浏览器运行)
  • 开发成本不同(h5需要兼容不同的浏览器)
  • 获取系统权限不同(系统级权限可以和小程序无缝衔接)
  • 应用在生成环境的运行速度流程(h5需不断对项目优化来提高用户体验

 

10.小程序和Vue写法的区别?

  • 小程序的路由写在app.json文件里,vue写在route.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值