迈特科技Logo

icon 全国 [切换城市]
微信小程序开发教程之WXML模板详解

迈特科技在前面的文章分享过微信小程序开发中的JSON配置教程,接下来跟大家分享小程序开发教程之WXML模板详解。

从事过网页编程的人知道,网页编程采用的是 HTML + CSS + JS 这样的组合,其中 HTML 是用来描述当前这个页面的结构,CSS 用来描述页面的样子,JS 通常是用来处理这个页面和用户的交互。

微信小程序开发教程之WXML模板详解-迈特科技

同样道理,在小程序开发中也有同样的角色,其中 WXML 充当的就是类似 HTML 的角色。打开 pages/index/index.wxml,你会看到以下的内容:


<view>

  <view>

    <button wx:if="{{!hasUserInfo && canIUse}}"> 获取头像昵称 </button>

    <block wx:else>

      <image src="{{userInfo.avatarUrl}}" background-size="cover"></image>

      <text>{{userInfo.nickName}}</text>

    </block>

  </view>

  <view>

    <text>{{motto}}</text>

  </view>

</view>

和 HTML 非常相似,有标签、属性等等构成。但是也有很多不一样的地方,我们来一一阐述一下:

 

1、标签名字有点不一样 往往写 HTML 的时候,经常会用到的标签是 div, p, span,开发者在写一个页面的时候可以根据这些基础的标签组合出不一样的组件,例如日历、弹窗等等。换个思路,既然大家都需要这些组件,为什么我们不能把这些常用的组件包装起来,大大提高我们的开发效率。 从上边的例子可以看到,小程序的 WXML 用的标签是 view, button, text 等等,这些标签就是小程序给开发者包装好的基本能力,我们还提供了地图、视频、音频等等组件能力

2、多了一些 wx:if 这样的属性以及 {{ }} 这样的表达式 在网页的一般开发流程中,我们通常会通过 JS 操作 DOM (对应 HTML 的描述产生的树),以引起界面的一些变化响应用户的行为。例如,用户点击某个按钮的时候,JS 会记录一些状态到 JS 变量里边,同时通过 DOM API 操控 DOM 的属性或者行为,进而引起界面一些变化。当项目越来越大的时候,你的代码会充斥着非常多的界面交互逻辑和程序的各种状态变量,显然这不是一个很好的开发模式,因此就有了 MVVM 的开发模式(例如 React, Vue),提倡把渲染和逻辑分离。简单来说就是不要再让 JS 直接操控 DOM,JS只需要管理状态即可,然后再通过一种模板语法来描述状态和界面结构的关系即可。 小程序的框架也是用到了这个思路,如果你需要把一个 Hello World 的字符串显示在界面上。

WXML 是这么写 :

<text></text>

 

JS 只需要管理状态即可:

this.setData({ msg: "Hello World" })


通过 {{ }} 的语法把一个变量绑定到界面上,我们称为数据绑定。仅仅通过数据绑定还不够完整的描述状态和界面的关系,还需要 if/else, for等控制能力,在小程序里边,这些控制能力都用 wx: 开头的属性来表达。


迈特科技——靠谱的技术伙伴,为企业提供一站式技术服务。主要业务范围有:APP开发、小程序开发、微信开发、电商系统开发、物联网(IOT)开发等互联网+领域。


小程序开发www.nymaite.com

小程序apiwww.nymaite.com/article_291.html

微信小程序怎么用www.nymaite.com/article_270.html


推荐文章

Hi,Are you ready?
准备好开始了吗?
那就与我们取得联系吧
有一个互联网项目想和我们谈谈吗?您可以填写右边的表格,让我们了解您的项目需求,这是一个良好的开始,我们将会尽快与你取得联系。当然也欢迎您给我们写信或是打电话,让我们听到你的声音!
迈特—靠谱的互联网技术伙伴
地址:河南省南阳市宛城区经十路与纬八路交叉路口东100米中关村信息谷创新中心
业务热线:137-1818-8679
售后服务:0377-66988886
E-mail:helloqyg@163.com
合作意向表
您需要什么服务?
  • APP开发
  • 微信小程序
  • 其他小程序
  • 公众号开发
  • 网站建设
  • 电商系统开发
  • 营销传播
  • 代运营
您的预算 /*准确的预算有助于我们为您提供合适的方案
  • 1-2万
  • 2-6万
  • 6-10万
  • 10万以上
  • 大型项目需要投标
提交需求