微信小程序遇到的问题

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。

导入文件 <import  src="wxParse.wxml" />

引用模版 <template is="wxParse" data="{{wxParseData:article.nodes}}"/>

4.组件模板和样式

组件模板的写法和页面模板相同。组件模板与组件数据结合后生成的节点树,将被插入到组件的引用位置上。

在组件模板中可以提供一个节点,用于承载组件引用时提供的子节点。

<!--组件模板-->

<view class="wrapper">

    <solt></solt>

</view>

<!--引用组件的页面模板-->

<view>

    <component-tag-name>

        <view>这里是插入到组件solt的内容</view>

    </component-tag-name>

</view>

注意,在模板中引用到的自定义组件及其对应的节点名需要在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,cc

6.concat用于连接两个或多个数组。

7.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()方法清除所有成员,没有返回值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,165评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,503评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,295评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,589评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,439评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,342评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,749评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,397评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,700评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,740评论 2 313
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,523评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,364评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,755评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,024评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,297评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,721评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,918评论 2 336

推荐阅读更多精彩内容

  • 微信小程序在无论在功能、文档及相关支持方面,都是优于前面几种微信账号类型,它提供了很多原生程序才有的接口,使得我们...
    未央大佬阅读 2,282评论 0 12
  • 配置文件 app.json的配置(全局) {// 用来配置页面的路径"pages":["pages/index/i...
    Q轩哥阅读 27,066评论 2 31
  • WXML WXML(WeiXin Markup Language)是微信的一套标签语言,结合基础组件、事件系统,可...
    许剑锋阅读 6,759评论 3 51
  • 微信小程序官方文档 一、准备工作 申请账号 安装开发工具(微信自己的开发工具) 微信自己弄了一套语言,目录结构如下...
    Viaphlyn阅读 397评论 0 0
  • 最近我好像喜欢上了一个人,可是不知道如何去追寻,我不够大胆不够随性,她们说这是文艺女生的通病,只知道偷偷写诗歌表达...
    三玄阅读 580评论 4 3