微信小程序遇到的问题

1.登录的流程:

(1)wx.login获取临时登录凭证code.

(2)wx.getSetting(OBJECT),wx.getUserInfo()获取用户的授权信息,并回传到开发者服务器code,encryptedData ,iv。

(3)拒绝授权之后调用wx.openSetting,获取用户信息,向后台传信息。wx.getSetting({ success: (res) => {if (res.authSetting[‘scope.record’] || res.authSetting[‘scope.userInfo’]) {//微信授权authSetting结果// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框

wx.getUserInfo({                 
   success: res => {               
          /*** 向后台发送 res 发送给后台解码出 unionId*/          
           let encryptedData = res.encryptedData;   
              let iv = res.iv;                   
    }         
     })

2.ES6的promise用法

(1).微信小程序引入es6promise.js;

(2).网络层promise封装

export default class NetUtil{//static静态方法

static  post(url,data){        return NetUtil.requestJson(url,data,"post");    }    static get(url,data){        return NetUtil.requestJson(url,data,"get");    }    static  requestJson(url,data,method){        data=data||{};        return new Promise(function(resolve,reject){            wx.request({                "method":method,                 "url":url,                  "data":data,                   "header":{                         'Content-Type': 'application/json'                    },                    success:function(res){                        resolve(res);                    },                    fail:function(err){                        reject(err);                    }            })        }    }}

Promise.all()方法用于将多个promise实例,包装成一个新的Promise实例。const p=Promise.all([p1,p2,p3]);Promise.all方法接受一个数组作为参数,p1,p2,p3都是Promise实例,

如果不是,就会先调用下面讲到的Promise.resolve方法,将参数转为Promise实例,再进一步处理。(Promise.all方法的参数可以不是数组,但必须具有Iterator 接口,且返回的每个成员都是Promise实例。)p的状态由p1,p2,p3决定,分成两种(3).require 用来加载代码,而 exports 和 module.exports 则用来导出代码。

但很多新手可能会迷惑于 exports 和 module.exports 的区别。module.exports初始值为一个空对象{};exports是指向module.exports的引用。

require()返回的是module.exports而不是exports。module.exports:模块化。(4).let app=getApp();微信提供了全局的getApp()函数,可以获取到小程序实例或小程序注册实例中的方法。(5).使用export default命令,为模块指定默认输出,这样就不需要知道所要加载模块的变量名。

3.微信小程序富文本的用法:

(1).将下载下来的插件文件夹复制到我们的项目根目录下(其中emojis文件可根据自己所需决定要或者不要,其他的文件必须要)(2).在需要用到该插件的view(.js)引入var WxParse= require(’…/…/…/wxParse/wxParse.js’);(3).在需要用到的wxss中引入WxParse.wxss,也可以在app.wxss中引入(没有引入WxParse.wxss:span样式显示不正确)。@import"…/…/…/wxParse/wxParse.wxss";

(4).进行数据绑定var article=“我是HTML代码”/** WxParse.wxParse(bindName,type,data,target,imagePadding)1.bindName绑定的数据名(必填)2.type可以为html或md(必填)3.data为传入的具体数据(必填)4.target为Page对象,一般为this(必填)5.imagePadding为当图片自适应是左右的单一padding(默认为0,可选).*/ var that = this; WxParse.wxParse(‘article’, ‘html’, article,that, 5);(5).在内容页(.wxml文件)中引用该模版文件,其中data中article为bindName。导入文件 引用模版

4.组件模板和样式组件模板的写法和页面模板相同。

组件模板与组件数据结合后生成的节点树,将被插入到组件的引用位置上。在组件模板中可以提供一个节点,用于承载组件引用时提供的子节点。 这里是插入到组件solt的内容 注意,在模板中引用到的自定义组件及其对应的节点名需要在json文件中显示定义,否者会被当作一个无意义的节点。组件wxml的solt在组件的wxml中可以包含slot节点,用于承载组件使用者提供的wxml解构。默认情况下,一个组件的wxml中只能有一个solt。要启动solt必须在json文件中开启{ “component”: true}。

5.join的用法join() 方法用于把数组中的所有元素放入一个字符串。

元素是通过指定的分隔符进行分隔的。join()方法用于把数组中的所有元素放入一个字符串,元素是通过指定的分隔符进行分隔。var arry=[aa,bb,cc];document.write(arry.join());输出aa,bb,cc6.concat用于连接两个或多个数组。

6.ES6中Set的用法//Set结构的实例有四个遍历方法,可以用于遍历成员。

keys():返回键名的遍历器 values():返回键值的遍历器 entries():返回键值对的遍历器 forEach():使用回调函数遍历每个成员. 由于Set结构没有键名,只有键值(或者说键名和键值是同一个值),所以keys方法和values方法的行为完全一致. let set =new Set([‘red’,‘green’,‘blue’]); for (let item of set.keys()){ console.log("=",item); }// (2).forEach()// Set结构的实例与数组一样,也拥有forEach方法,用于对每个成员执行某种操作,没有返回值. set=new Set([1,4,9]); set.forEach((value,key)=>{ console.log(key); }) 8.Map结构的实例有以下属性和操作方法。(1)size属性返回Map结构的成员总数。 const mapo=new Map(); mapo.set(“aa”,true); mapo.set(“bb”,false); mapo.size;//2(2)set(key,value) //set方法设置键名key对应的键值为value,然后返回整个Map结构.如果key已经有值,则键值会被更新,否则就新成该键. const mp=new Map(); mp.set(‘edition’,6)//键是字符串 mp.set(26,‘standard’)//键是数值 mp.set(undefined,‘nah’)//键是undefined(3)get(key) //get方法读取key对应的键值,如果找不到key,返回undefined const m=new Map(); const hello=function(){ console.log(‘hello’) } m.set(hello,‘Hello ES6’)//键是函数 m.get(hello)(4)has(key) //has方法返回一个布尔值,表示某个键是否在当前Map对象之中 const m=new Map(); m.set(‘edition’,6); m.set(262,‘standard’); m.set(undefined,‘nah’); m.has(‘edition’)//true m.has(‘years’)//false m.has(262)//true m.has(undefined)//true(5)delete(key) //delete方法删除某个键,返回true。如果删除失败,返回false。 const m1=new Map(); m1.set(undefined,‘nah’); m1.has(undefined); console.log("=",m1.has(undefined)); console.log(“delete”,m1.delete(undefined));(6)clear()方法清除所有成员,没有返回值。

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

前端技术栈

支持鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值