微信小程序 高频面试题合集

目录

小程序中如何进行接口请求?会不会跨域,为什么

小程序的常用命令有哪些

引用数据

逻辑渲染

列表渲染

引用

你认为微信小程序的优点是什么,缺点是什么

微信小程序中的js和浏览器中和node中的区别

微信小程序中的数据渲染浏览器中有什么不同

小程序中如何渲染数据

简述一下微信小程序中通讯模型

谈谈对微信小程序中生命周期函数的理解

        微信小程序中如何进行事件的定义,传参

事件定义 bind开头

阻止事件冒泡 catch开头

事件捕获 capture-bind开头

事件传参  data-

        wxss和css有什么区别

尺寸单位        rpx

样式的导入

小程序中的样式选择器

小程序如何进行页面的跳转传参以及接收数据

路由跳转传参

小程序如何进行本地存储

异步存储

同步存储

异步读取

同步读取

缓存的限制和隔离

谈谈你对微信小程序请求封装的理解

封装的优点

作用

封装的实现

小程序如何实现数据驱动视图

注意事项

为什么微信小程序会出现登录鉴权的问题, 如何解决

对小程序中常见的开放能力API有什么了解

小程序的父子传参和vue中的有什么区别

谈谈你对behavior的理解

组件中使用

同名字段的覆盖和组合规则

如何优化首次加载小程序的速度

 控制代码包的大小

 分包加载---预加载

 预请求

避免不当的使用setData

 使用自定义组件

如何实现瀑布流效果

谈谈你对WebSocket的理解

WebSocket协议有哪些特点


小程序中如何进行接口请求?会不会跨域,为什么

1. 利用 wx.request API进行接口请求

    wx.request({

      url: 'https://showme.myhope365.com/api/cms/article/open/list',

      method: "POST",

      data: {

        pageNum: 1,

        pageSize: 10

      },

      header: {

        "content-type": "application/x-www-form-urlencoded"

      },

      success: res => {

        console.log(res.data.rows)

      }

})

参数说明

  • url  开发者服务器接口地址。注意这里需要配置域名
  • data   请求的参数
  • header   设置请求的 headerheader 中不能设置 Referer,默认header['content-type'] = 'application/json'
  • method(需大写)有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
  • dataType      json 回包的内容格式,如果设为json,会尝试对返回的数据做一次 JSON解析
  • success  收到开发者服务成功返回的回调函数。
  • fail 接口调用失败的回调函数
  • complete      接口调用结束的回调函数(调用成功、失败都会执行)

2. 不会跨域

3. 跨域问题的出现是因为浏览器在进行请求时存在同源策略, 但是微信小程序不受同源策略的影响.所以不存在跨域问题

小程序的常用命令有哪些

引用数据

{ {}}  小程序中任何需要获取数据的地方都需要用{ {}},包括标签内的属性

逻辑渲染

wx:if   wx:else  wx:elif  条件渲染

1. 使用 wx:if="{ {condition}}" 来判断是否需要渲染该代码块   

2. 使用 wx:elif 和 wx:else 来添加一个 else 块     

3. 因为 wx:if 是一个控制属性,需要将它添加到一个标签上。

hidden  条件渲染

wx:if在不满足条件的时候会删除掉对应的DOM

hidden属性则是通过display属性设置为none来进行条件渲染

列表渲染

wx:for   wx:for-item   wx:for-index

在组件上使用 wx:for 控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。默认数组的当前项的下标变量名默认为 index,数组当前项的变量名默认为 item

使用 wx:for-item 指定数组当前元素的变量名,使用 wx:for-index 指定数组当前下标的变量名。

<view wx:for="{
  {array}}" wx:for-index="idx" wx:for-item="itemName">

  {
  {idx}}: {
  {itemName.name}}

</view>

wx:key

如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态(如 <input/> 中的输入内容, <switch/> 的选中状态),需要使用 wx:key 来指定列表中项目的唯一的标识符。

        wx:key 的值以两种形式提供:

  1. 字符串,代表在 for 循环的 array item 的某个 property,该 property 的值需要是列表中唯一的字符串或数字,且不能动态改变。
  2. 保留关键字 this 代表在 for 循环中的 item 本身,这种表示需要 item 本身是一个唯一的字符串或者数字。

当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。

引用

WXML 提供两种文件引用方式importinclude

import 

需要注意的是 import 有作用域的概念,即只会 import 目标文件中定义的 template,而不会 import 目标文件中 import template,简言之就是 import 不具有递归的特性

include

include 可以将目标文件中除了 <template/> <wxs/> 外的整个代码引入,相当于是拷贝到 include 位置。

你认为微信小程序的优点是什么,缺点是什么

优势

  • 微信助理,容易推广。在微信中,小程序拥有众多入口,例如附近的小程序、小程序码、分享、发现-小程序等五十多个的入口。这些入口有助于企业更好的获取流量,从而进行转化、变现。
  • 使用便捷。用户在使用小程序时,只需要轻轻点一下就可以使用,更加符合用户对使用方便、快捷的需求,所以小程序的用户数量不断增加。
  •  体验良好,有接近原生app的体验 。在微信生态里,小程序在功能和体验上是可以秒杀掉 H5 页面的,H5 页面经常出现卡顿、延时、加载慢、权限不足等原因,而这些问题在小程序里都不会出现。
  • 成本更低,从开发成本到运营推广成本,小程序的花费仅为APP的十分之一,无论是对创业者还是传统商家来说都是一大优势。

不足

  • 单个包大小限制为2M,这导致无法开发大型的应用,采用分包最大是20M(这个值一直在变化,以官网为准)。
  • 需要像app一样审核上架,这点相对于H5的发布要麻烦一些。
  • 处处受微信限制。例如不能直接分享到朋友圈,涉及到积分,或者虚拟交易的时候,小程序也是不允许的

微信小程序中的js和浏览器中和node中的区别

浏览器中JS

  • ES
  • DOM
  • BOM

Node中的JS

  • ES
  • NPM
  • Native

小程序中的JS

  • ES
  • 小程序框架
  • 小程序API

微信小程序中的数据渲染浏览器中有什么不同

1. 浏览器中渲染是单线程的。

2. 小程序中的运行环境分成渲染层逻辑层, WXML 模板和 WXSS 样式工作在渲染层,JS 脚本工作在逻辑层。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值