微信小程序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 相关文章推荐
实现超用户体验 table排序javascript实现代码
Jun 22 Javascript
一个简单的JavaScript数据缓存系统实现代码
Oct 24 Javascript
JavaScript 一道字符串分解的题目
Aug 03 Javascript
推荐10个超棒的jQuery工具提示插件
Oct 11 Javascript
javascript日期格式化方法汇总
Oct 04 Javascript
Vue.js组件tree实现无限级树形菜单
Dec 02 Javascript
JS 中LocalStorage和SessionStorage的使用
Aug 17 Javascript
JS中Attr的用法详解
Oct 09 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
Jun 14 Javascript
微信小程序wepy框架笔记小结
Aug 08 Javascript
JS闭包经典实例详解
Dec 20 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
Aug 07 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
BBS(php &amp; mysql)完整版(一)
2006/10/09 PHP
PHP+MYSQL开发工具及资源收藏
2007/01/02 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
2016/12/15 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
2020/02/11 PHP
jQuery TextBox自动完成条
2009/07/22 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
2014/09/21 Javascript
js简单实现点击左右运动的方法
2015/04/10 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
Sortable.js拖拽排序使用方法解析
2016/11/04 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
2017/07/17 jQuery
Vue核心概念Getter的使用方法
2019/01/18 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
2020/05/03 Javascript
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
python求斐波那契数列示例分享
2014/02/14 Python
Python 使用PIL numpy 实现拼接图片的示例
2018/05/08 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
用Python读取几十万行文本数据
2018/12/24 Python
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
Python数据分析pandas模块用法实例详解
2019/11/20 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
Python操作多维数组输出和矩阵运算示例
2019/11/28 Python
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
烹调加工管理制度
2014/02/04 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
图书馆义工感想
2015/08/07 职场文书
关于国庆节的广播稿
2015/08/19 职场文书
PHP命令行与定时任务
2021/04/01 PHP
pyqt5打包成exe可执行文件的方法
2021/05/14 Python
python开发人人对战的五子棋小游戏
2022/05/02 Python