202104 -- 小程序
1. 请谈谈微信小程序作用?
-
app.json 是小程序的配置文件入口,整个小程序的全局配置
-
app.js 监听处理小程序的生命周期函数,声明全局变量
-
app.wxss 全局配置的样式文件
-
pages 里面包含一个个具体的页面
-
index.json 配置当前页面标题和引入组件等
-
index.wxml 页面结构
-
index.wxss 页面样式表
-
index.js 页面的逻辑,请求和数据处理等
2. 小程序的全局变量 globalData 和 storage,时效性是一样的吗?
- globalData 是内存,storage 是缓存。即小程序退出 globalData 会清空,storage 则不会
3. 简单描述下微信小程序的相关文件类型?
微信小程序项目结构主要有四个文件类型
-
wxml 是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。内部主要是微信自己定义的一套组件。
-
wxss 是一套样式语言,用于描述 wxml 的组件样式
-
js 逻辑处理,网络请求
-
json 小程序配置,如页面注册,页面标题及 tabBar
4. 请谈谈 wxml 与标准的 html 的异同?
-
都是用来描述页面的结构
-
都由标签、属性等构成
-
标签名字不一样,且小程序标签更少,单一标签更多
-
多了一些 wx:if 这样的属性以及 {{ }} 这样的表达式
-
wxml 仅能在微信小程序开发者工具中预览,而 html 可以在浏览器内预览
-
组件封装不同, wxml 对组件进行了重新封装,
-
小程序运行在 jsCode 内,没有 DOM 树和 window 对象,小程序中无法使用 window 对象和 document 对象。
5. 小程序的生命周期函数?
-
onLoad() 页面加载时触发,只会调用一次,可获取当前页面路径中的参数
-
onShow() 页面显示/切换前台时触发,一般用来发送数据请求
-
onReady() 页面初次渲染完成时触发,只会调用一次,代表页面已可和视图层进行交互
-
onHide() 页面隐藏/切入后台时触发,如底部 tab 切换到其他页面或小程序切入后台等
-
onUnload() 页面卸载时触发,如 redirectTo 或 navigateBack 到其他页面时
6. 你是怎么封装微信小程序的数据请求的?
-
使用 promise 封装 request
-
在 service 文件夹集中管理和使用 api
-
在子页面中调用 service 文件夹中的 api 方法请求数据
7. 有哪些参数传值的方法?
-
给 HTML 元素添加
data-*
属性,然后通过 e.currentTarget.dataset 或 onload 的 param 参数获取。但 data-名称 不能有大写字母和不可以存放对象 -
设置 id 的方法标识来传值通过 e.currentTarget.id 获取设置的 id 的值,然后通过设置全局对象的方式来传递数值
-
在 navigator 中添加参数传值
8. 你使用过哪些方法,来提高微信小程序的应用速度?
-
提高页面加载速度
-
用户行为预测
-
减少默认 data 的大小
-
组件化方案
9. 简述微信小程序原理
-
js 是运行在微信中的而不是浏览器,因此一些 h5 支持的 api 并不适用于小程序;微信提供独有的某些 api,h5 也不支持或支持的不是很好
-
wxml 微信基于自己XML语法开发的,无法使用 html 的标签
-
wxss 具有 css 的大部分特性
-
微信的架构,是数据驱动的架构模式,它的 ui 和数据是分离开的,所有页面的更新,都需要通过对数据的更改来实现
-
小程序分为两部分:webview 和 appService
-
webview 主要用来展现 ui
-
appService 用来处理业务逻辑、数据和接口调用
-
分别在两个进程中运行,通过系统层 JSBridge 实现通信,实现 ui 渲染、事件的处理
-
10. 小程序的双向绑定和 vue 哪里不一样
- 小程序直接 this.data 的属性是不可以同步到视图的,必须使用
this.setData({属性: 属性值})
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)