微信小程序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 相关文章推荐
两种简单实现菜单高亮显示的JS类代码
Jun 27 Javascript
javascript获取当前日期时间及其它操作函数
Jan 11 Javascript
jquery对dom的操作常用方法整理
Jun 25 Javascript
js获取select标签选中值的两种方式
Jan 09 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
Sep 09 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
Jan 08 Javascript
JavaScript利用HTML DOM进行文档操作的方法
Mar 28 Javascript
JS中frameset框架弹出层实例代码
Apr 01 Javascript
javascript实现的左右无缝滚动效果
Sep 19 Javascript
JSON与XML的区别对比及案例应用
Nov 11 Javascript
JS获取当前时间的实例代码(昨天、今天、明天)
Nov 13 Javascript
element-ui 弹窗组件封装的步骤
Jan 22 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
与数据库连接
2006/10/09 PHP
php 深入理解strtotime函数的使用详解
2013/05/23 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
php中引用&amp;的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
兼容IE和FF的js脚本代码小结(比较常用)
2010/12/06 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
用jQuery获取table中行id和td值的实现代码
2016/05/19 Javascript
javascript之IE版本检测超简单方法
2016/08/20 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
ES6概念 ymbol.for()方法
2016/12/25 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
Vue.js 2.0 移动端拍照压缩图片上传预览功能
2017/03/06 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
JS左右无缝轮播功能完整实例
2019/05/16 Javascript
bootstrap-table+treegrid实现树形表格
2019/07/26 Javascript
layui使用数据表格实现购物车功能
2019/07/26 Javascript
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python中的多行注释文档编写风格汇总
2016/06/16 Python
Django中的Signal代码详解
2018/02/05 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
详解Python time库的使用
2019/10/10 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
Python之Class&amp;Object用法详解
2019/12/25 Python
Python 实现自动获取种子磁力链接方式
2020/01/16 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
HTML5 Canvas绘制五星红旗
2016/05/04 HTML / CSS
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
估算杭州有多少软件工程师
2015/08/11 面试题
深圳-东方伟业笔试部分
2015/02/11 面试题
机械设计专业应届生求职信
2013/11/21 职场文书
简历的自荐信
2013/12/19 职场文书
法院信息化建设方案
2014/05/21 职场文书
2014年财务人员工作总结
2014/11/11 职场文书