前端小程序面试题(一)

首先说一些为什么总结小程序相关的面试题吧

我们可以随便打开一个招聘网站,在那里你会发现市场对于小程序的需求还是蛮高的,有些公司可能就只需要写小程序的前端人员

虽然小程序的开发很大一部分都是很简单的,但是有些常用的东西还是有必要了解一下的。故此,有了这样一篇小程序面试题的总结。当然感兴趣或者有需要的小伙伴也可以 点击这里,查看完整版前端面试题

如果文章中有出现纰漏、错误之处,还请看到的小伙伴留言指正,先行谢过

以下 ↓

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

微信小程序项目结构主要有四个文件类型
  • WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。内部主要是微信自己定义的一套组件
  • WXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式
  • js 逻辑处理,网络请求
  • json 小程序设置,如页面注册,页面标题及tabBar
主要文件
  • app.json 必须要有这个文件,如果没有这个文件,项目无法运行,因为微信框架把这个作为配置文件入口,整个小程序的全局配置。包括页面注册,网络设置,以及小程序的 window 背景色,配置导航条样式,配置默认标题
  • app.js 必须要有这个文件,没有也是会报错!但是这个文件创建一下就行 什么都不需要写以后我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量
  • app.wxss 可选

2. 简述微信小程序原理

微信小程序采用  JavaScriptWXMLWXSS 三种技术进行开发,本质就是一个单页面应用,所有的页面渲染和事件处理,都在一个页面内进行,但又可以通过微信客户端调用原生的各种接口

微信的架构,是数据驱动的架构模式,它的 UI 和数据是分离的,所有的页面更新,都需要通过对数据的更改来实现

小程序分为两个部分 webview 和 appService 。其中 webview 主要用来展现 UI appService 有来处理业务逻辑、数据及接口调用。它们在两个进程中运行,通过系统层 JSBridge 实现通信,实现 UI 的渲染、事件的处理

3. 小程序的双向绑定和vue哪里不一样

小程序直接 this.data 的属性是不可以同步到视图的,必须调用:

this.setData({
    // 这里设置
})

4. 小程序的wxss和css有哪些不一样的地方

WXSS 和  CSS 类似,不过在  CSS 的基础上做了一些补充和修改

 

  • 尺寸单位 rpx
  • rpx 是响应式像素,可以根据屏幕宽度进行自适应。规定屏幕宽为 750rpx。如在 iPhone6 上,屏幕宽度为 375px,共有 750 个物理像素,则 750rpx = 375px = 750 物理像素

  • 使用 @import 标识符来导入外联样式。@import 后跟需要导入的外联样式表的相对路径,用;表示语句结束
  • /** index.wxss **/
    @import './base.wxss';
    
    .container{
        color: red;
    }

    5. 小程序页面间有哪些传递数据的方法

  • 使用全局变量实现数据传递
  • 在 app.js 文件中定义全局变量 globalData, 将需要存储的信息存放在里面

    // app.js
    
    App({
         // 全局变量
      globalData: {
        userInfo: null
      }
    })

    使用的时候,直接使用 getApp() 拿到存储的信息

  • 使用 wx.navigateTo 与 wx.redirectTo 的时候,可以将部分数据放在 url 里面,并在新页面 onLoad 的时候初始化
  • //pageA.js
    
    // Navigate
    wx.navigateTo({
      url: '../pageD/pageD?name=raymond&gender=male',
    })
    
    // Redirect
    wx.redirectTo({
      url: '../pageD/pageD?name=raymond&gender=male',
    })
    
    
    // pageB.js
    ...
    Page({
      onLoad: function(option){
        console.log(option.name + 'is' + option.gender)
        this.setData({
          option: option
        })
      }
    })

    需要注意的问题:

    wx.navigateTo 和 wx.redirectTo 不允许跳转到 tab 所包含的页面

    onLoad 只执行一次

  • 使用本地缓存 Storage 相关
### 小程序前端面试题展望 随着技术的发展,小程序前端开发领域也在不断演进。以下是针对2025年可能涉及的小程序前端相关面试题目的些预测和分析。 #### 、基础概念 1. **小程序架构解析** 小程序通常由两大部分组成:`webview` 和 `appService`。其中,`webview` 负责展示用户界面[^3],而 `appService` 则负责业务逻辑处理。这种分离设计使得开发者可以更专注于各自的功能模块优化。 2. **数据绑定机制** 数据绑定是小程序的核心特性之。通过双向绑定或者单向数据流的方式,能够有效减少手动更新 DOM 的操作次数,提高性能并简化代码维护成本。 #### 二、框架与工具链 1. **主流框架对比** 当前市场上存在多个流行的小程序开发框架如 WePY、Taro 等。这些框架各有优劣,在选择时需考虑项目需求以及团队技术水平等因素影响下的适用性评估标准[^1]。 2. **状态管理方案** 对于复杂应用场景而言,合理选用Redux或其他相似的状态管理模式至关重要。它可以帮助我们更好地管理和共享全局状态信息,从而提升应用可扩展性和用户体验质量。 #### 三、实际案例分析 1. **组件化实践** 组件化的思想贯穿整个前端工程体系之中。如何创建独立性强且易于复用的自定义组件成为衡量名合格工程师能力的重要指标之。 2. **性能调优策略** 包括但不限于图片懒加载、CSS动画替代JavaScript效果等方面的知识点都是考察候选人解决真实世界问题经验的好方法。 ```javascript // 图片懒加载示例 function lazyLoadImages() { const images = document.querySelectorAll('img[data-src]'); function loadImage(image) { image.src = image.getAttribute('data-src'); image.removeAttribute('data-src'); } new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting && entry.target.dataset.src !== undefined){ loadImage(entry.target); observer.unobserve(entry.target); // Stop observing once loaded } }); }).observe(images); } ``` #### 四、未来趋势探讨 1. **跨平台解决方案** 随着市场需求变化和技术进步,越来越多的企业倾向于采用统的技术栈来覆盖多端设备适配工作。因此了解当前热门跨平台技术及其局限性对于长期职业规划具有重要意义。 --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浩星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值