微信小程序组件wxParse中的模版template使用方法

模板

WXML提供模板(template),可以在模板中定义代码片段,然后在不同的地方调用

介绍及使用方法

模版(template)你不陌生吧? 
angularjs中的模版文件 - ng-template 
RN中的模版文件使用 
甚至是移动开发中VM的概念也应该会联想到模版概念

看看微信的模版官方用法

微信小程序官方文档-模版

 着重提一下Mustache的判断语法,不陌生吧 
is 属性可以使用 Mustache 语法,来动态决定具体需要渲染哪个模板: 
不过在微信小程序开发中,能使用的很少,且有自己的规则,大概的条件语句都差不多,可以自己尝试一下

<template name=odd>
<view> odd </view></template><template name=even>
<view> even </view></template><block wx:for={{[1, 2, 3, 4, 5]}}>
<template is={{item % 2 == 0 ? 'even' : 'odd'}}/></block>

模版的引入

详细讲解官方文档 微信小程序官方文档-模版引入42 
着重强调 import 的作用域 
import 有作用域的概念,即只会 import 目标文件中定义的 template,而不会 import 目标文件 import 的 template。 
如:C import B,B import A,在C中可以使用B定义的template,在B中可以使用A定义的template,但是C不能使用A定义的template

<!-- A.wxml --><template name=A><text> A template </text></template>
<!-- B.wxml --><import src=a.wxml/><template name=B><text> B template </text></template>
<!-- C.wxml --><import src=b.wxml/><template is=A/>
<!-- Error! Can not use tempalte when not import A. --><template is=B/>

循环使用测试

我们拿上面的例子来看多做几个, >小技巧:一个模版文件可以写多个模版,只要名字不同即可

在写wxParse的时候,我希望能够通过一个模版来自我循环调用实现,但是因为作用域的问题,不能够进行调用,所以我希望能够呈现三角调用,做下面的例子看看

<template name=A>   <text> A template </text></template><template name=B>   <text> B template </text></template><template name=C>   <text> C template </text></template>

可以循环调用的话输出结果

A templateB templateC templateA templateB templateC template.../循环

实际场景下输出

A templateB templateC template

结论就是,其无法进行循环调用,不仅是传值问题,文档中也有提到。

困难1:无法循环使用模版下,如何处理多级HTML嵌套解析 
回答: 既然不能够实现完美的代码较少的方式,那我们就采用一种笨办法,手动循环出N个模版,因为在时机场景中,尤其是在文章的html中不会出现超过10级的嵌套,那么这样我们可以手动写10个模版,进行循环调用

实际代码

我们使用下面的代码进行不断的重复,只需要修改template对应指向下一个模版,并不断累加到10个以上,基本上能够解决大部分的html解析问题。 
** 所以,如果你的HTML嵌套级别较高的话,只要按照这个步骤再进行复制模版就可以了。

<template name=wxParse0>
<!--判断是否是标签节点-->
<block wx:if={{item.node == 'element'}}>
<block wx:if={{item.tag == 'button'}}>
<button type=default size=mini >
<block wx:for={{item.child}} wx:for-item=item>
<template is=wxParse1 data={{item}}/>
</block>
</button>
</block>
<!--li类型-->
<block wx:elif={{item.tag == 'li'}}>
<view class=wxParse-li>
<view class=wxParse-li-inner>
<view class=wxParse-li-text>
<text class=wxParse-li-circle></text>
</view>
<view class=wxParse-li-text>
<block wx:for={{item.child}} wx:for-item=item>
<template is=wxParse1 data={{item}}/>
</block>
</view>
</view>
</view>
</block>
<!--video类型-->
<block wx:elif={{item.tag == 'video'}}>
<!--增加video标签支持,并循环添加-->
<view  class=wxParse-{{item.tag}}>
<video class=wxParse-{{item.tag}}-video src={{item.attr.src}}></video>
</view>
</block>
<!--img类型-->
<block wx:elif={{item.tag == 'img'}}>
<view class=wxParse-{{item.tag}}>
<image src={{item.attr.src}} mode=aspectFit></image>
</view>
</block>
<block wx:else>
<view  class=wxParse-{{item.tag}}>
<block  wx:for={{item.child}} wx:for-item=item>
<template is=wxParse1 data={{item}}/>
</block>
</view>
</block>
</block>
<!--判断是否是文本节点-->
<block wx:elif={{item.node == 'text'}}>
<!--如果是,直接进行-->
<block wx:if={{item.text != '' || item.text != ' ' || item.text != '  ' || item.text != '\n\n'}}>
<text>{{item.text}}</text>
</block>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


在做微信小程序新版本的时候,如何提醒用户更新? 今天分享一个关于微信小程序发布新版本提示用户更新代码
本文小编为大家详细介绍“微信小程序如何设置字体样式”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序如何设置字体样式”文章能帮助大家解决疑惑...
这篇文章主要介绍了微信小程序picker选择器获取值的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序picker...
本篇内容介绍了“微信小程序选择器组件picker怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处...
本篇内容主要讲解“在微信小程序中怎么使用three.js”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在微信小程...
这篇文章主要讲解了“uni-app开发微信小程序之H5压缩上传图片的问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入...
      大家熟悉微信小程序查询地理经纬位置吗?晓得微信小程序查询地理经纬位置的操作吗?下文就带来了微信小程序查询地理经纬位置的操作教程,一起来看看吧
      今日就快来学习本文中微信小程序收款通知设置方法的操作过程吧,相信在以后的使用中一定会得心应手的
      当前使用微信小程序类软件的朋友越来越来多,那么若想知道wifi密码查看器官方版小程序的使用,该如何操作的呢?接下来分享关于wifi密码查看器官方版小程序的使用的操作步骤。
      相信许多网友对微信都熟悉的,手机必装的一款应用,那大家知道在微信小程序里手持弹幕玩法吗?下文小编就带来了微信手持弹幕玩法的简单教程,有需要的朋友一起来看看吧
      不少朋友都喜欢使用微信小程序软件,那么大家知道快速制作微信小程序方法的简单操作吗?若还不了解,就来学习学习制作微信小程序方法教程吧,10分钟就能搞定
      有些人在使用微信时,还不了解微信怎么制作二维码表白的操作,下面小编就讲解使用微信制作二维码表白的操作方法吧,单身朋友赶快Get起来吧
      不少朋友都喜欢使用微信小程序,那么大家清楚微信小程序可以直接玩斗地主游戏的操作吗?若还不了解,就来学习学习利用微信小程序玩斗地主游戏教程吧!
      现在用手机里小程序的人越来越多,各种生活小软件应有尽有,下面小编就给大家分享一波微信小程序,好看+好用+精致,希望给大家带来帮助。
      微信想必大家都很熟悉,它是现在最大的社交软件,大家或许不知道微信小程序里有个好物圈,那么今天小编就带大家学习微信好物圈的具体操作,希望能够帮助到大家呢
      大家知道如何利用微信小程序转换PDF文档吗?下文小编就带来了在利用微信小程序转换PDF文档的简单使用教程,一起来看看吧!
      微信小程序现在是越来越受大家欢迎,现在很多朋友都喜欢使用微信小程里的换算工具.不过部份朋友还不清楚小程序里换算工具使用方法,今天小编要为大家分享一个微信超强换算工具一起来看看吧!
      想必刚刚入手微信小程序的朋友,还不太了解微信成语猜猜看怎么进入,小编今天就带来关于微信小程序成语猜猜看打开方法的操作步骤,感兴趣的小伙伴们一起学习一下吧!
      有些用户在使用微信小程序时,还不了解微信小程序如何修改用户名称,下面小编就讲解修改微信小程序的名称的操作方法,有需要的小伙伴一起来学习吧,详细流程奉上
      当前互联网发展迅速,整个用户设备不断的在变化,生态也接连变化,所以可以这样说,智能小程序已经成为一个必然的选择。