小程序常见面试题

本文探讨了微信小程序(WXML)与HTML的相似性和差异,包括小程序的生命周期函数、数据绑定特点以及页面间的通信方式。同时,分析了小程序的优缺点,如快速启动、样式限制和推广局限性。此外,还提到了提高小程序性能的策略,如优化数据加载、用户行为预测和减少默认数据大小。最后,概述了微信小程序的运行原理,涉及JS、WXML和WXSS的使用以及其与H5的区别。
摘要由CSDN通过智能技术生成
谈谈wxml与html的一同?
  • 都是由标签、属性等构成,用来描述页面的结构
  • 标签名称不同,且小程序标签更少,单一标签更对
  • 小程序多了一些类似vue的wx:if这样的属性以及{{}}表达式
  • wxml在微信小程序开发工具中预览,可以在手机上进行真机调试,html可在浏览器内预览
  • 组件封装不同,wxml对组件进行了重新封装
    -小程序运行在JS Core中,没有DOM树和Window对象,document对象
小程序页面间传递数据的方法?
  • 给html元素添加data-*属性来传递值,然后通过e.current.dataset或onLoad的param参数获取值。(data- 名称不能由大写字母,不可以存放对象)
  • 设置id的方式标识来传值,通过e.currentTarget,id获取设置的id的值,然后通过设置全局对象的方式来传数值
  • 在navigator中添加参数数值或使用七言句变量事件数据传递
  • 页面跳转或重定向时,使用url带参数传递数据
  • 使用组件模板template传递参数
  • 使用缓存传递参数
  • 使用数据库传递参数
谈谈小程序的双向绑定和vue的异同?

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

  • 双向绑定:vue默认支持双向绑定,微信小程序需要借助data
  • 取值:vue中通过this.season取值。小程序中通过thia.data.reason取值
  • 定义方法:小程序 在app.js中定义,vue在method中定义
  • 取变量时:小程序 -> wx:for = “lists”; vue ->v-for = “item in lists”
  • 调用data模型(赋值)时:小程序 ->this.data.item ;vue->this.item

小程序的双向绑定实际上并不是双向绑定,如果在小程序js文件中改变了某个变量的值那么页面上的值并不会随之改变,如果想要跟着改变的化,需要通过setData来操作,而vue默认就是双向绑定的

说一说小程序的生命周期函数?
  • onLoad():页面加载时触发,只调用一次,可获得当前页面路径中的参数
  • onShow():页面是是/切入到前台时触发,一般用来发送数据请求
  • onReady():页面初次渲染完成时触发,指挥第哦啊用一次,代表页面已和视图层进行交互
  • onHide():页面隐藏/切入后台时触发,如底部tab切换到其他页面或小程序切入后台时
  • onUnload():页面卸载时触发,如redirectTo或navigateBack到其他页面时
  • onPullDownRefresh():下拉刷新的钩子函数,用户下拉刷新时
  • onReachBottom():上翻到底的钩子函数
分析以下微信小程序的优劣势?
  1. 优势:无需下载,良好的用户体验,打开速度快,开发成本比App低,安卓上可以添加到桌面,与原生App差不多,且为了安全保障,小程序的发布有一套严格的审核流程,不能通过审查的雄安程序时无法发布到线上的
  2. 缺点:限制较多。页面大小不能超过2M.不能打开超过5个层级的页面
    样式单一。小程序的部分组件已经是成型的,样式不可修改,例如:幻灯片,导航。
    推广面窄,不能分享朋友圈,只能通过分享给朋友,附近小程序推广。其中附近的小程序也受到微信的限制
    依托于微信,无法开发后台管理功能
你是用过哪些方法来提高小程序的应用速度?
  • 提高页面加载速度
  • 用户行为预测
  • 减少默认data的大胸啊
  • 组件化方案
简述微信小程序的原理?

微信小程序采用JS,WXML,WXSS三种技术进行开发,技术上与现有的前端开发差不多。

  1. JS:代码运行在微信APP中,而不是浏览器,因此一些H5技术的应用需要微信提供对应的API支持,而这限制了H5的应用,且不能称为严格的H5,应称其为伪H5,同理,微信提供的独有的某些API,H5也不支持或支持的不是很好
  2. WXML:使微信自己基于XML语法开发的,因此开发时,只能使用微信提供的现有标签
  3. WXSS:具有CSS的大部分特性,但并不是所有的都支持,wxss的图片引入需要用外链地址‘没有bidy,样式可直接使用import导入
    微信的架构时数据驱动的架构模式,它的UI和数据是分离的,所有的页面更新,都需要通过对数据的更改来实现
  4. 小程序分为两部分:webview和appSource。其中webview主要用来展示UI,appSource用来处理业务逻辑、数据及接口调用。它们在两个进程中运行,通过系统曾JSBridge实现同i性能,实现UI的渲染、事件的处理
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值