5-小程序的view层

MVC模式这里就不讲了,不懂MVC模式的就自己去查阅相关资料。小程序的的view层由WXML与WXSS编写,由组件来进行展示。view层将逻辑层的数据反应成界面显示,同时将界面发生的事件发送给逻辑层。

WXML(WeiXin Markup language)用于描述页面的结构,可以想象成Html文件。

WXSS(WeiXin Style Sheet)用于描述页面的样式,可以想象成Css文件。

组件(Component)是视图的基本组成单元,可以想象成Html中的组件。

下面我们用简单的例子来看看 WXML 具有什么能力:

1、测试环境准备

⑴ pages目录里建立viewtest目录,专门用来做view层测试。

⑵ index里添加触发viewtest的相关代码

① index.wxml

<view>修改成:<view bindtap="bindUserTap">

② index.js

添加下面的代码:

bindUserTap: function() {

wx.navigateTo({

url: ‘../viewtest/viewtest‘

})

},

③ app.json

把viewtest路径加入pages参数里:

"pages":[

"pages/index/index",

"pages/logs/logs",

"pages/viewtest/viewtest"

],

2、例子

⑴ 数据绑定

<!--viewtest.wxml-->

<view> {{message}} </view>

// viewtest.js

Page({

data: {

message: ‘Hello MINA!‘

}

})

⑵ 列表渲染

<!--viewtest.wxml-->

<view wx:for="{{array}}"> {{item}} </view>

// viewtest.js

Page({

data: {

array: [1, 2, 3, 4, 5]

}

})

⑶ 条件渲染

<!--viewtest.wxml-->

<view wx:if="{{view == ‘WEBVIEW‘}}"> WEBVIEW </view>

<view wx:elif="{{view == ‘APP‘}}"> APP </view>

<view wx:else="{{view == ‘MINA‘}}"> MINA </view>

// viewtest.js

Page({

data: {

view: ‘MINA‘

}

})

⑷ 模板

<!--viewtest.wxml-->

<template name="staffName">

<view>

FirstName: {{firstName}}, LastName: {{lastName}}

</view>

</template>

<template is="staffName" data="{{...staffA}}"></template>

<template is="staffName" data="{{...staffB}}"></template>

<template is="staffName" data="{{...staffC}}"></template>

// viewtest.js

Page({

data: {

staffA: {firstName: ‘Hulk‘, lastName: ‘Hu‘},

staffB: {firstName: ‘Shang‘, lastName: ‘You‘},

staffC: {firstName: ‘Gideon‘, lastName: ‘Lin‘}

}

})

⑸ 事件

<!--viewtest.wxml-->

<view bindtap="add"> {{count}} </view>

// viewtest.js

Page({

data: {

count: 1

},

add: function(e) {

this.setData({

count: this.data.count + 1

})

}

})

时间: 2024-10-26 22:25:23

5-小程序的view层的相关文章

使用movable-view制作可拖拽的微信小程序弹出层效果。

仿了潮汐睡眠小程序的代码.[如果有侵权联系删除 最近做的项目有个弹出层效果,类似音乐播放器那种.按照普通的做了一般感觉交互不是很优雅,设计妹子把潮汐睡眠的弹层给我看了看,感觉做的挺好,于是乘着有空仿照了一下. 首先善用度娘反编译弄到了源码,但是打不开.然后自己研究源码发现他们用的是movable-view实现的. 于是仿照着搭出了基础框架. 新建了个组件 wxml <!--components/playpanel/playpanel.wxml--> <movable-area style

微信小程序 JS 逻辑层

丰富的API: https://developers.weixin.qq.com/miniprogram/dev/api/ 全局逻辑(app.js) 调用APP()函数,调用生命周期函数 一.生命周期函数:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/app.html App() 函数用来注册一个小程序.接受一个 object 参数,其指定小程序的生命周期函数等. 1. onLaunch : 当小程序

小程序api请求层封装(Loading全局配置)

前言 小程序开发,没有vue中的axios那么好使,请求层的封装需要自己来搞. 当然请求层的配置少不了loading,这里索性也就将loading做一个配置,避免以后重复造轮子 请求封装 小程序中有封装好的请求方法:wx.request(url,method,header,success,fail,complete);方法类似于原生的ajax, 这里我们大的方面分两种,一种普通请求,一种是文件上传 普通请求又分为get请求,post请求,post请求又分为JSON格式和BODY格式因此 我们需要

关于小程序获取view的动态高度填坑

wx.createSelectorQuery().select('#box').boundingClientRect(function (rect) { width = rect.width height = rect.height top = rect.top }).exec() 如上,拿到了id为box的view,并获取到了它的宽.高等属性,此段代码要放在onReady函数中 注意:如果这个view的宽高是随着内容而变化的话,这样获取到的宽高就有可能还是渲染完成前的值,不知是不是小程序自己的

微信小程序将view动态填满全屏

一.在app.js利用官方方法获取设备信息 App({ onLaunch: function() { wx.getSystemInfo({ success: res => { this.globalData.systemInfo = res } }) }, globalData: { systemInfo: null } }) 获取到的windowWidth.windowHeight等度量单位为 px 二.在要使用的页面的js文件里将单位统一为rpx const app = getApp() P

关于小程序去除view/navigator 点击后默认阴影效果

hover:class  :定义容器在被触发时的样式 通常无用,但若不去除则影响用户体验: 为避免被覆盖,约定在wxss底部添加class,比如: <!-- wxml --> <navigator class="index-nav_box" hover-class="noshadow"> <image></image> <view class="index-nav-des">现采蓝莓1斤

微信小程序 - 弹出层组件

需要的可以下载示例:maskalert 原文地址:https://www.cnblogs.com/cisum/p/10421741.html

微信小程序的view标签中text如何居中?

display:flex; align-items:center; justify-content:center; 原文地址:https://www.cnblogs.com/lsyy2017/p/11128497.html

微信小程序弹出层

1.消息提示     wx.showToast wx.showToast({ title: '成功', icon: 'success', duration: 2000 }) 2.模态弹窗 wx.showModal wx.showModal({ title: '提示', content: '这是一个模态弹窗', success (res) { if (res.confirm) { console.log('用户点击确定') } else if (res.cancel) { console.log(