微信小程序template模版的使用方法


Posted in Javascript onApril 13, 2019

前言

小程序开发语言虽然只能运行在微信小程序中, 但是它的设计同样遵循了主流前端框架的主要特征——组件化,在小程序中组件化的实现有两种方式: template 模版 和 Component 组件。 这两种方式分别适用于不同的场景。

  • template 模版 主要用于展示,模版中不涉及事件处理, 需要处理的事件逻辑放在调用模版的页面中。 一个 template 模版 只包含 wxml wxss 文件。
  • Component 组件 作为一个单独的功能模块,不仅可以包含页面展示还可以包含该模块的事件逻辑处理。 像一个页面一样, Component 组件 可以包含 wxml wxss js json 文件。

1. 创建 template 模版

不同于 page 和 Component 的创建, 在开发者工具中并不能快速创建一个 template 模版。所以需要单独创建 wxss wxml 文件。

微信小程序template模版的使用方法

template.wxml 文件语法

一个 template.wxml 文件中使用 <template> 标签包含一个模版, 一个 template.wxml 文件可以包含多个 <template>模版, 使用 name 属性作为模版的名称。

在模版中可以接受变量, 使用 {{}} 展示。 为变量的传递者由调用该模版的页面传递。

<template name="A">
 <text>template name: {{name}}</text>
</template>
<template name="B">
 <text>template name: {{name}} {{msg}}</text>
</template>

template.wxss 模版样式文件

模版可以拥有自己的样式文件

text{
 color: #cccccc;
}

2. 引用 template 模版

  • template 模版的引用需要使用 <import> 标签。 该标签的 src 属性为需要引用模版的路径。
  • template 模版的使用用 <template> 标签。 使用 is 属性来区别模版文件中定义的模版。
  • 使用 data 传入模版中的数据。

index.wxml

<import src="../tpls/template.wxml" />

<view>
 <template is="A" data="{{name}}"/>
 <template is="B" data="{{name, msg}}"/>
<view>

3. 引用模版样式

在 调用页面的 wxml 中引用了 template.wxml 后,模版的样式并不会引用, 需要在调用页面的 wxss 中单独引用 template.wxss 文件。

index.wxss

@import "./tpls/template.wxss"

4. 模版文件中的事件处理

在模版中定义的事件, 需要调用页面中执行。

template.wxml

<template name="A">
 <text bindtap="handleTap">template name: {{name}}</text>
</template>

index.js

Page({
 data: {},
 handleTap() {
 console.log('template 模版 click')
 }
})

5.  import 有作用域

import 有作用域的概念,即只会 import 目标文件中定义的 template,而不会 import 目标文件中 import 的 template,简言之就是 import 不具有递归的特性。

例如:C 引用 B,B 引用A,在C中可以使用B定义的 template,在B中可以使用A定义的 template ,但是C不能使用A定义的template

6. include 配合 template 模版

如同使用 <import src="xx/xx/xx.wxml"> <tempalte is="A" /> 引用和使用模版一样, 同样也可以使用 <include src="xx/xx/xx.wxml />" 来引用一个模版。

需要注意的是:

  • 使用 <include> 引用模版文件时, 并不能分别出模版文件的模版块, 所以使用 <include> 引用的模版文件中只能定义一个模版块。
  • include 可以将目标文件中除了 <template/> <wxs/> 外的整个代码引入,相当于是拷贝到 include 位置。
<!-- index.wxml -->
<include src="header.wxml"/>

<view> body </view>

<include src="footer.wxml"/>
<!-- header.wxml -->
<view> header </view>
<!-- footer.wxml -->
<view> footer </view>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
有关JavaScript的10个怪癖和秘密分享
Aug 28 Javascript
JavaScript中最简洁的编码html字符串的方法
Oct 11 Javascript
基于JQuery实现分隔条的功能
Jun 17 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
Dec 14 Javascript
使用 Node.js 对文本内容分词和关键词抽取
May 27 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
Oct 18 Javascript
JS+HTML+CSS实现轮播效果
Nov 28 Javascript
vue 之 .sync 修饰符示例详解
Apr 21 Javascript
用ES6写全屏滚动插件的示例代码
May 02 Javascript
详解微信小程序自定义组件的实现及数据交互
Jul 22 Javascript
p5.js临摹动态图形实现方法详解
Oct 23 Javascript
node.js express捕获全局异常的三种方法实例分析
Dec 27 Javascript
vue基于viewer实现的图片查看器功能
Apr 12 #Javascript
js form表单input框限制20个字符,10个汉字代码实例
Apr 12 #Javascript
详解js创建对象的几种方法及继承
Apr 12 #Javascript
详解JQuery基础动画操作
Apr 12 #jQuery
React中阻止事件冒泡的问题详析
Apr 12 #Javascript
TypeScript中的方法重载详解
Apr 12 #Javascript
vue-cli 3.x配置跨域代理的实现方法
Apr 12 #Javascript
You might like
php遍历数组的方法分享
2012/03/22 PHP
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
Js中sort()方法的用法
2006/11/04 Javascript
一段好玩的JavaScript代码
2006/12/01 Javascript
Exjs 入门篇
2010/04/07 Javascript
Jquery上传插件 uploadify v3.1使用说明
2012/06/18 Javascript
jquery遍历checkbox的注意事项说明
2014/02/21 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
基于jquery实现的自动补全功能
2015/03/12 Javascript
jQuery实用技巧必备(中)
2015/11/03 Javascript
js改变透明度实现轮播图的算法
2020/08/24 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
如何用webpack4带你实现一个vue的打包的项目
2018/06/20 Javascript
node thread.sleep实现示例
2018/06/20 Javascript
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
实例Python处理XML文件的方法
2015/08/31 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
python IDLE添加行号显示教程
2020/04/25 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
行政管理人员精品工作推荐信
2013/11/04 职场文书
资源环境与城市管理专业推荐信
2013/11/30 职场文书
工程售后服务承诺书
2014/05/21 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
活动总结范文
2014/08/30 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
JavaScript实现贪吃蛇游戏
2021/06/16 Javascript
Javascript webpack动态import
2022/04/19 Javascript