第一个微信小程序——实现获取用户信息替换用户名和头像到首页

摘要:
右键单击页面以创建新目录并将其命名为索引。在索引下创建一个新页面,并将其命名为索引。注意:微信小程序已修改。您需要在页面下创建一个新目录以创建新页面。它指定小程序中所有页面的地址,还指定小程序启动时的主页,即页面数组的第一页。建议:在开发微信小程序时,设计师可以使用iPhone 6作为视觉脚本的标准。

一、创建小程序

二、形成空白文件

点击打开目录

image

删除除了project.config.json(项目配置文件)以外所有文件。

image

新建“app.json”

在这里插入图片描述

接下来我们在app.json中写入配置

{}

保存,我们可以看到编译器报错,因为目前文件为空

image

三、小程序页面路径配置

首先在app.json中写入

{
  "pages": [
    "pages/index/index"
  ]
}

第一个pages:指的是项目里面有哪些页面

第二个pages:指的是pages目录
在这里插入图片描述

保存,一定要先保存要不然建好回车没有反应。

右击pages新建目录,命名为index,在index下新建pages命名为index

注意:现在微信小程序改版了,需要在pages下新建目录才能新建页面。现在可以看到开发者工具新建的页面,自动放入pages数组中。

image

app.json 中,pages 数组是必填的。它规定小程序中所有页面的地址,同时规定了小程序启动时的首页,就是 pages 数组的首位所指的页面。

pages 成功配置后,小程序就可以正常运行了(新建页面文件后,小程序已经正常运行无报错了)。

image

但如果想要一些个性化配置,我们依然可以继续修改 app.json

四、修改小程序页面

修改app.json代码如下:

{
  "pages": [
    "pages/index/index"
  ],
  "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#ff0000",
    "navigationBarTitleText": "我的第一个小程序",
    "navigationBarTextStyle": "white"
  }
}

是不是看到变化了!

image


在app.json中,window用于设置小程序的状态栏,导航条,标题,窗口,背景色。

具体见 https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/page.html

image

五、与WXML玩耍

插入文字

当我们打开index文件夹下面的index.wxml文件,可以看到开发者工具在自动生成页面的时候,默认生成代码如下。

<!--pages/index/index.wxml-->
<text>pages/index/index.wxml</text>

image

第一行是注释,对代码解释说明。计算机执行程序会自动跳过注释编译。第二行代码前后都是由尖括号阔起来部分中间即是pages/index/index.wxml。

在小程序中, <text>代表文字视觉组件。在它们中间插入的内容,将会直接显示在小程序的相应位置中

试试:把中间改成hello World!保存运行

<image src='/image/a.jpg'></image>

image

插入图片

下面我们在小程序中插入一张图片。

首先在index页面下打开目录

image

新建image文件夹,根目录下创建

image

拖一张自己喜欢的图片进去,再回到开发者工具就回看到文件夹和图片都出现在目录下,与根目录平行,一定要注意别建错文件夹。

image

接下来我们在wxml中插入代码

与 <text> 一样, <image 也是小程序的一个视觉组件,它代表在小程序里插入一张图片。

<image src='/image/a.jpg'></image>

效果如下:
image

分割代码

在开发过程中把屏幕元素分割成不同部分,用独立的样式代码提高编码效率

例如我们用对元素部分进行区分,增加<view>。
image
这样我们就可以统一处理图片的样式和其他操作。

六、与wxss玩耍

在页面中打开index.wxss文件

image

处理图片

从图片开始处理,我们这样设置image的属性。

image {
  width: 400rpx;
  height: 150prx;
  border-radius: 50%;
}

image

看,他变圆了!

处理文字

text{
  font-size: 64rpx;
  color:crimson;
}

image

查看文字的变化。

调整布局

添加属性

view {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-around;
  height: 800rpx;
}

image

在属性里面,我们首先用到的是flex,随后我们用到的是flex-direction 属性,将<view>中的视觉元素,按照纵向进行排列,align-items 属性,它用于设定横向排版模式。将 align-items 值设为 center,就能让视觉元素居中显示,
justify-content: space-around 将元素均匀地排布在页面上,再后来设置view的高度,就像html布局中一个盒子的高度=view中所有元素的高度。

长度单位rpx(responsive pixel):

可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在iPhone6上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。
在这里插入图片描述

建议:开发微信小程序时设计师可以用iPhone6作为视觉稿的标准。

七、获取用户资料

当用户对小程序有需求,我们是不是应该添加按钮或者对话框与用户进行交互,选择性的满足用户不同需求。下面我们以添加按钮事件为例。

在WXML文件中添加按钮

<!--pages/index/index.wxml-->
<view>
<text>Hello China</text>
<image src='/image/a.jpg'></image>
<button open-type='getUserInfo'>我是按钮点我把</button>
</view>

接下来我们开始编写js文件,接收微信传给我我们的数据。

我们打开index.js,我们可以看到里面有开发者工具自动生成的生命周期函数,我们直接增加一个方法
在这里插入图片描述
像这样
image
然后我们开始编写一个用户点击按钮反馈回去的数据。
新建函数 getProfile当这个函数接收到用户资料后,就直接输出到控制台中。

// pages/index/index.js
Page({
  getProfile(res){
    console.log(res)
  }
})

console.log() 函数可以将变量、数据,写入开发者工具的控制台中

完善wxml

<!--pages/index/index.wxml-->
<view>
<text>Hello China</text>
<image src='/image/a.jpg'></image>
<button open-type='getUserInfo' bindgetuserinfo='getProfile'>我是按钮点我吧</button>

</view>

点击按钮后,查看控制台

image

可以看到,在这么多的数据中,微信将用户数据包裹在这个对象里的 detail.userInfo 中。尝试输出其中 detail.userInfo 的内容,就可以看到干净的用户资料了。

在js文件中添加

Page({
  getProfile(res){
    console.log(res.detail.userInfo)
  }
})

点击按钮查看控制台信息
image

结果输出到界面

接下来,我们就来尝试将小程序界面中原本的默认头像和欢迎语,替换为用户头像和昵称

在小程序中,界面层(WXML)和逻辑层(JS)之间有一种特殊的数据交换方式,名为「数据绑定」。WXML 可以与 JS 中的特殊的变量进行绑定,当 JS 修改变量的时候,变化将会直接传入界面层。

// pages/index/index.js
Page({
  getProfile(res){
    this.setData({
      "profile": res.detail.userInfo
    })
    
  }
})

这里我们新建了一个变量profile,我们把用户资料写入变量中,接着可以利用 Page() 对象本身含有的 setData() 函数。回到 index.js,就可以用 setData() 将用户数据写入变量。

接着我们在WXML文件中绑定这些变量,将用户资料输出到首页。

<!--pages/index/index.wxml-->
<view>
  <text>{{profile.nickName}}</text>
  <image src='{{profile.avatarUrl}}'></image>
  <button open-type='getUserInfo' bindgetuserinfo='getProfile'>我是按钮点我吧</button>
</view>

到这我们再考虑一种因素,当小程序刚启动获取我们的资料有延迟,这样显示的界面存在留白怎么处理?

优化程序

我们设置一个默认界面,给页面加载写入初始化数据

在js文件里面添加一个data对象

// pages/index/index.js
Page({
  getProfile(res){
    this.setData({
      "profile": res.detail.userInfo
    })
    
  },
  data:{
    "profile":{
      nickName:"HELLO CHINA"
    }
  }
})

保存初始化页面:当然你可以加图片哈,我这主要突出一个效果
image

点击按钮后界面
image

小程序初始化进入的界面是默认界面,点击按钮后获取到用户资料并自动替换。

免责声明:文章转载自《第一个微信小程序——实现获取用户信息替换用户名和头像到首页》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇安装rename perl versionmui实现移动端上拉加载下拉刷新功能下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

微信小程序上传Word文档、PDF、图片等文件

<view class="main" style="border:none"> <view class="title"> 附件上传 </view> <view class="list"> <view class="imglist">...

微信小程序 tab切换内容及分页

在实际项目中,经常会遇到点击切换不同内容的情况,尤其是个人中心的订单页,还要同时实现滚动分页效果。 效果如下: <view class="tabNav"> <view wx:for="{{navTab}}" wx:key="index" data-idx="{{index}}" bindtap="currentTab" cla...

Django微信小程序后台开发教程

本文链接:https://blog.csdn.net/qq_43467898/article/details/83187698Django微信小程序后台开发教程1 申请小程序,创建hello world小程序2 添加交互框和按钮3 在服务器配置hello django4 实现计算器接口5 配置服务器将后端与微信小程序连接5.1 uwsgi配置5.2 htt...

微信小程序 发送模板消息的功能实现

背景 - 小程序开发的过程中,绝大多数会满足微信支付 - 那么,作为友好交互的体现,自然就会考虑到支付后的消息通知咯 - 所以,我的小程序项目也要求完成这个效果,so.分享一下自己的实现步骤,以方便道友们少踩点坑... 微信消息通知的区别: 1. 微信网页版、公众号的消息提醒 要求用户必须 "关注商家公众号",才支持消息的接收 并且还有个奇怪...

微信小程序支付源码,后台服务端代码

作者:尹华南,来自原文地址 微信小程序支付绕坑指南 步骤 A:小程序向服务端发送商品详情、金额、openid B:服务端向微信统一下单 C:服务器收到返回信息二次签名发回给小程序 D:小程序发起支付 E:服务端收到回调 首先准备以一下信息 小程序发送小程序向服务端发送商品详情、金额、openid 服务端接收小程序发来的信息...

微信小程序基于腾讯云对象存储的图片上传

在使用腾讯云对象存储之前,公司一直使用的是传统的FTP的上传模式,而随着用户量的不断增加,FTP所暴露出来的问题也越来越多,1.传输效率低,上传速度慢。2.时常有上传其他文件来攻击服务器,安全上得不到保障。所以我们在经过慎重考虑觉得使用第三方的云存储服务。 在最开始的时候我们在腾讯云与阿里云中选择,最终我们选择腾讯云,腾讯云在文件上传用时方面的性能比较突出...