微信小程序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 相关文章推荐
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
Aug 13 Javascript
js遍历、动态的添加数据的小例子
Jun 22 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
Aug 16 Javascript
js检查是否关闭浏览器的方法
Aug 02 Javascript
基于vue.js中事件修饰符.self的用法(详解)
Feb 23 Javascript
解决angularjs中同步执行http请求的方法
Aug 13 Javascript
JavaScript学习笔记之DOM基础操作实例小结
Jan 09 Javascript
JavaScript实现与使用发布/订阅模式详解
Jan 19 Javascript
js实现旋转木马轮播图效果
Jan 10 Javascript
JS实现横向轮播图(初级版)
Jun 24 Javascript
elementui的el-popover修改样式不生效的解决
Jun 30 Javascript
gojs实现蚂蚁线动画效果
Feb 18 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
Discuz 5.0 中读取纯真IP数据库函数分析
2007/03/16 PHP
PHP对象转换为数组函数(递归方法)
2012/02/04 PHP
探讨php中遍历二维数组的几种方法详解
2013/06/08 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
2014/11/22 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
[原创]图片分页查看
2006/08/28 Javascript
ie 处理 gif动画 的onload 事件的一个 bug
2007/04/12 Javascript
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
2012/07/31 Javascript
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
浅谈JavaScript中null和undefined
2015/07/09 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
jQuery动态改变多行文本框高度的方法
2016/09/07 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
Bootstrap 响应式实用工具实例详解
2017/03/29 Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
python getopt详解及简单实例
2016/12/30 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
python实现布隆过滤器及原理解析
2019/12/08 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
Python跑循环时内存泄露的解决方法
2020/01/13 Python
简单了解Django项目应用创建过程
2020/07/06 Python
python实现图片转换成素描和漫画格式
2020/08/19 Python
Mamas & Papas沙特阿拉伯:英国最受欢迎的婴儿品牌
2017/11/20 全球购物
高中毕业自我鉴定
2013/12/19 职场文书
应届毕业生个人求职自荐信
2014/01/06 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
法学自荐信
2014/06/20 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
活动新闻稿范文
2015/07/17 职场文书
求职自我评价参考范文
2019/05/16 职场文书