微信小程序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操作textarea方法集合封装(兼容IE,firefox)
Feb 22 Javascript
Jquery 表格合并的问题分享
Sep 17 Javascript
深入理解JavaScript作用域和作用域链
Oct 21 Javascript
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
Mar 06 Javascript
js事件绑定快捷键以ctrl+k为例
Sep 30 Javascript
jQuery中height()方法用法实例
Dec 24 Javascript
jQuery on()绑定动态元素出现的问题小结
Feb 19 Javascript
微信小程序开发之大转盘 仿天猫超市抽奖实例
Dec 08 Javascript
jQuery实现在新增加的元素上添加事件方法案例分析
Feb 09 Javascript
详解element-ui中form验证杂记
Mar 04 Javascript
vue实现树形结构样式和功能的实例代码
Oct 15 Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
Sep 21 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
用 Composer构建自己的 PHP 框架之基础准备
2014/10/30 PHP
php备份数据库类分享
2015/04/14 PHP
php源码之将图片转化为data/base64数据流实例详解
2016/11/27 PHP
PHP chop()函数讲解
2019/02/11 PHP
php根据地址获取百度地图经纬度的实例方法
2019/09/03 PHP
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
JavaScript中闭包的详解
2017/04/01 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
微信小程序中遇到的iOS兼容性问题小结
2018/11/14 Javascript
vue实现分页栏效果
2019/06/28 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
2019/09/15 jQuery
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
解决vue addRoutes不生效问题
2020/08/04 Javascript
Vue实现手机计算器
2020/08/17 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
python实现自动更换ip的方法
2015/05/05 Python
python 远程统计文件代码分享
2015/05/14 Python
Python中使用urllib2模块编写爬虫的简单上手示例
2016/01/20 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
Python实现图片添加文字
2019/11/26 Python
Python如何根据时间序列数据作图
2020/05/12 Python
python 生成器需注意的小问题
2020/09/29 Python
pytorch简介
2020/11/11 Python
python asyncio 协程库的使用
2021/01/21 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
CSS+jQuery+PHP+MySQL实现的在线答题功能
2015/04/25 HTML / CSS
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
html5+svg学习指南之SVG基础知识
2014/12/17 HTML / CSS
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
New Balance俄罗斯官方网上商店:购买运动鞋
2020/03/02 全球购物
公司仓管员岗位职责
2015/04/01 职场文书
sql字段解析器的实现示例
2021/06/23 SQL Server
详解 TypeScript 枚举类型
2021/11/02 Javascript
Java Spring Boot请求方式与请求映射过程分析
2022/06/25 Java/Android