1、模板

如果相同的wxml代码可能在不同的页面重复使用,ctrl+c配合ctrl+v的方式,后期维护起来未免也太麻烦了。微信提供了“模板”,可以在模板中定义代码片段,然后在不同的地方调用。

使用 <template> 对代码进行模板定义,并使用name属性为模板进行命名,如:
<template name="msgItem">
<view>
<text> {{index}}: {{msg}} </text>
<text> Time: {{time}} </text>
</view>
</template>
6
 
1
<template name="msgItem"> 
2
  <view>
3
    <text> {{index}}: {{msg}} </text>
4
    <text> Time: {{time}} </text>
5
  </view>
6
</template>

而在需要使用模板的地方,首先需要引用模板文件,通过import关键字,可以在文件中使用引用文件中定义的template,如:

<import src="item.wxml"/>
1
 
1
<import src="item.wxml"/>

而使用的话,同样是 <template> ,但使用其 is 属性进行声明使用,并将模板需要的数据传入。如:

<import src="item.wxml"/>
<template is="msgItem" data="{{...item}}"/>
 
1
<import src="item.wxml"/>
2
<template is="msgItem" data="{{...item}}"/>

来实际操作一下,我们接着之前的章节,现在把welcome页面中的代码片段 <text>Welcome,{{nickname}}!{{number}}</text> 抽离为模板:
  • 在pages文件夹下,新建文件夹template,并新建一个wxml文件命名为welcome-template.wxml
  • 按照模板的定义方式,定义模板内容
 
然后,我们到welcome.wxml中引用name为welcome的模板:
 
注:这里的 ... 是wxml中提供的一个扩展运算符,表示将一个对象展开,这样一来在模板中本需要使用pageData.nickname的形式,现在只需要写nickname即可。

可以看到,这里传入的数据参数名为pageData,那么我们在welcome.js中的data也需要修改为json对象的形式:
 
我们看到效果和之前直接写是一样的:
 

2、模块化

在微信小程序中,可以将一些公共的代码抽离为一个单独的js文件,作为一个模块,而在其它需要使用的页面,对该js文件进行引用。而模块的内容只能通过 module.exports 来对外暴露接口。而在需要使用的地方,使用关键字 require(path) 进行引入。

值得注意的是,因为代码执行顺序的缘故,尽量把module.exports放在文件的最后。自己踩过的一个坑就是,曾把它放在第一行,结果引出的变量为undefined。

之前我们的变量nickname是写在welcome.js中的,现在我们把它抽离到其他js文件中,来示范一下“模块化”。

首先建立一个根目录命名为“modules”,在其下新建一个js文件data.js:
 
在js中可以定义变量或者函数,我们简单写一下,然后使用 module.exports 来暴露接口以供外界调用:

 
原来在welcome.js的onLoad函数中,我们的nickname是直接赋值的字符串,现在我们要引用模块文件data.js中的nickname,或者getNickname:
 
编译一下查看效果,妥妥的:

微信小程序开发 [04] 模板和模块化的更多相关文章

  1. 微信小程序开发之模板

    一.简介 WXML提供模板(template),可以在模板中定义代码片段,然后在不同的地方调用. 定义模板 使用name属性,作为模板的名字.然后在<template/>内定义代码片段,如 ...

  2. 微信小程序开发之模板消息

    一.添加模板 登录https://mp.weixin.qq.com获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用,详见模板审核说明 页面的 <form/> 组件,属性r ...

  3. 微信小程序开发教程目录

    本系列教程是自己在工作中使用到而记录的,没有顺序之分 如有错误之处,请给与指正,也不希望误导了别人 微信小程序开发教程目录 微信小程序之注册和入门 微信小程序之HTTPS请求 微信小程序开发之选项卡 ...

  4. 微信小程序开发:学习笔记[2]——WXML模板

    微信小程序开发:学习笔记[2]——WXML模板 快速开始 介绍 WXML 全称是 WeiXin Markup Language,是小程序框架设计的一套标签语言,结合小程序的基础组件.事件系统,可以构建 ...

  5. 微信小程序开发工具测评

    1月9日微信小程序正式上线.很多企业都希望能在这个.但是在技术开发的问题上,却不知道该如何下手.经过一些程序员不辞辛苦连夜测试,终于从十余款工具呕心沥血筛选出四款比较靠谱实用的微信小程序开发工具.接下 ...

  6. 微信小程序开发学习资料

    作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  7. 微信小程序开发实践

    目录 项目是否适合移植到小程序上? 概要介绍 实践得到的经验 规则 小程序不支持的 新特性 小窍门 会话管理 进阶 项目是否适合移植到小程序上? 小程序由于微信提供了一些组件,在微信中的一些体验确实不 ...

  8. 【微信小程序开发•系列文章六】生命周期和路由

    这篇文章理论的知识比较多一些,都是个人观点,描述有失妥当的地方希望读者指出. [微信小程序开发•系列文章一]入门 [微信小程序开发•系列文章二]视图层 [微信小程序开发•系列文章三]数据层 [微信小程 ...

  9. 微信小程序开发详解——小程序,大颠覆!

    微信小程序开发 联系 苏念 188.1414.7927  微信小程序系统开发 微信新功能开发 小程序开发 小程序怎么开发 app小程序开发 简化小程序开发 微信小程序定制 小程序制作 开发微信小程序  ...

随机推荐

  1. 令人血脉喷张的animate.css

    都说html5.css3是大局是潮流,尽管css3也不难,学起来比较简单,但我还是喜欢他的轻量级集大成者的animate.css框架,初学的小伙伴们加油啦 下面我分析一下animate.css框架里面 ...

  2. 如何在Oracle数据库中查看哪些用户在执行哪些SQL

    对于DBA来说,这是一个非常常见的问题,DBA需要找出以下问题: 1.哪些用户在跑哪些SQL? 2.一个特定的SQL是被哪个用户在执行? 3.一个特定的用户在跑哪些SQL? 从这些问题中可以很明显的看 ...

  3. Asp Url汉字乱码的问题

    1.js <a target="_blank" href="/asp/download.asp?File=' + escape(item.FileName) + ' ...

  4. Expo大作战(九)--expo的工作原理,以及版本发行说明

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,将全部来与官网 我猜去全部机翻+个人 ...

  5. C#DateTime.ToString 格式化时间字符串和数值类型转换为字符串

    我们经常会遇到对时间进行转换,达到不同的显示效果,默认格式为:2006-6-6 14:33:34,如果要换成200606,06-2006,2006-6-6或更多的格式该怎么办呢?这里将要用到:Date ...

  6. 如何避免SHRINKDATABASE & SHRINKFILE 产生索引碎片(转载)

    1. TRUNCATEONLY参数的使用我们在建立的Job中通常使用如下的语法DBCC SHRINKDATABASE (N'DB', 10,TruncateOnly)其中TruncateOnly的用处 ...

  7. 利用percona-toolkit定位数据库性能问题

    当你的性能瓶颈卡在数据库这块的时候,可以通过percona-toolkit来进行问题定位. 那么,首先,介绍下percona-toolkit.percona-toolkit是一组高级命令行工具的集合, ...

  8. [IDEA_3] IDEA 配置 GitHub 并上传项目

    0. 说明 参考 Git & GitHub 的安装配置 IDEA 配置 GitHub 并上传项目 1. 安装配置 Git & GitHub 参照 Git & GitHub 的安 ...

  9. [IDEA_1] IDEA 使用指南

    1. IDEA 安装与配置 具体细节待补充... 2. 优化编程体验 2.1.1 新建类后自动添加自定义的注释 在主界面使用快捷键 Ctrl + Alt + S 进入 Settings 页面 依次打开 ...

  10. 【转】Mysql学习---MySQL悲观锁中的排它锁

    [原文]https://www.toutiao.com/i6595305814087434760/ 悲观锁中的排它锁. 排它锁关键字:for update 特点:会锁住行或者表,防止其他事务进行修改操 ...