目录
小程序中如何进行接口请求?会不会跨域,为什么
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 设置请求的 header,header 中不能设置 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 的值以两种形式提供:
- 字符串,代表在 for 循环的 array 中 item 的某个 property,该 property 的值需要是列表中唯一的字符串或数字,且不能动态改变。
- 保留关键字 this 代表在 for 循环中的 item 本身,这种表示需要 item 本身是一个唯一的字符串或者数字。
当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。
引用
WXML 提供两种文件引用方式import和include。
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 脚本工作在逻辑层。