欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  互联网

微信小程序开发之十一 —— 页面渲染

程序员文章站 2022-03-14 20:16:26
快来学习微信小程序开发呀 —— 页面渲染...

学习前后

上一篇:微信小程序开发之十 —— 点击事件
下一篇:微信小程序开发之十二 —— 数据携带

变量渲染到页面

首先先在页面的js文件的page({})函数前面添加一些JavaScript代码

let title = "小程序假期开发学习";
let name = "bushenghan";
let a = -3;
let now = new Date();
这个是写在js最前面的,跟Page并列,不要写在Page里面
这个是js语法,所以要使用分号隔开,注意区分与Page里面逗号分隔的区别

在page的data数据里面添加以下代码:

data: {
    charat: title.charAt(5),
    concat: name.concat(title),
    upcase: name.toUpperCase(),
    abs: Math.abs(a),
    now: now.toString(),
    year: now.getFullYear(),
    time: now.getTime(),
  },

.wxml绑定数据,将数据渲染到页面

<view>两个字符串连接: {{concat}}</view>
<view>全部转成大写: {{upcase}}</view>
<view>绝对值: {{abs}}</view>
<view>当前时间: {{now}}</view>
<view>{{year}}</view>
<view>197011日至今的毫秒数: {{time}}</view>

响应的数据绑定

前面我们已经了解到,逻辑层js文件里的data数据可以渲染到页面。除此之外,如果逻辑层data的数据发现变化,页面也会做出相应的更新,这就是响应的数据绑定。我们是通过page的setData()方法来实现数据更改的。
比如我们设置一个更改背景的按钮
.wxml

<view style="background-color:{{bgcolor}};width:320px;height:200px;"></view>
<button style="background-color:red" bindtap="redTap">让背景变红</button>
<button style="background-color:yellow" bindtap="yellowTap">让背景变黄</button>

.js的data里添加

bgcolor: "#000000",

然后添加两个按钮绑定事件,放在page里面,与data,onload等同级

 redTap: function(){
    this.setData({
      bgcolor: "#f80a0a"
    })
  },
  yellowTap: function(){
    this.setData({
      bgcolor: "#fdf909"
    })
  },

效果:

微信小程序开发之十一 —— 页面渲染

响应的布尔操作

如果是只有两个值布尔操作,Swiper组件的是否轮播、video组件的是否静音播放等,点击一下就互相切换,这个我们可以使用否操作来进行,比如video的是否显示播放按钮
.wxml

<video id="daxueVideo" src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400" controls="{{controls}}" event-model="bubble"></video>
<button style="background-color:green;width=30px;hight='auto' "bindtap="changeControls">是否显示播放按钮</button>

.js的data

controls: true,

添加changeControls按钮事件

changeControls: function(){
    this.setData({
      controls: !this.data.controls
    })
  },

效果:

微信小程序开发之十一 —— 页面渲染

响应的数组操作

直接上代码了
.wxml,注意,这次用的是text组件,不是view组件,虽然个人感觉两个组件没啥区别,但今天发现view组件不能识别换行符,使用text才可以识别

<text>{{text}}</text>
<button bindtap="addline">增加一行</button>
<button bindtap="removeline">删除最后一行</button>

.js的Page前面添加js语法

let initData = "学习小程序开发"
let extraline = []

在Page的data里面添加数据

text: initData,

在Page里面添加按钮响应事件

 addline: function(e){
    extraline.push('今天你学习小程序开发了吗')
    this.setData({
      text: initData + '\n' + extraline.join('\n')
    })
  },
  removeline: function(e){
    if(extraline.length > 0){
      extraline.pop()
      this.setData({
        text: initData + '\n' + extraline.join('\n')
      })
    }
  },
还记得数组的join操作吗
它是将数组的值使用指定的分割符拼接成一个字符串
默认是逗号分割符

效果:

微信小程序开发之十一 —— 页面渲染

事件对象

官方文档:事件对象
这个敲长敲长,这个就不写了,文档写得比较清楚,大家简单看一下文档吧,了解一下是个怎么回事先。

本文地址:https://blog.csdn.net/weixin_45079619/article/details/107528952