当前位置: 首页 > news >正文

微信小程序怎么做网站安徽宿州住房与城乡建设玩网站

微信小程序怎么做网站,安徽宿州住房与城乡建设玩网站,个人网站备案 网站名称,全网营销推广系统vue之mustache库的机理其实是将模板字符串转化为tokens 然后再将 tokens 转化为 dom字符串#xff0c;如下图 对于一般的将模板字符串转化为dom字符串#xff0c;这样不能实现复杂的功能 let data {name:小王,age:18 } let templateStr h1我叫{{name}},我今年{{ag… vue之mustache库的机理其实是将模板字符串转化为tokens 然后再将 tokens 转化为 dom字符串如下图 对于一般的将模板字符串转化为dom字符串这样不能实现复杂的功能 let data {name:小王,age:18 } let templateStr h1我叫{{name}},我今年{{age}}岁h1templateStr templateStr.trim()let htmlStr templateStr.replace(/\{{(\w)}}/g,function(match,$1,index){//第一个参数为他寻找的部分第二个为捕获的东西第三个所在的位置第四个为该字符串return data[$1] }) console.log(htmlStr) //我叫小王我今年18岁 将模板字符串转化为tokens 前面已经知道了musache的工作原理为 将模板字符串转化为tokens然后再将tokens转化为BOM字符串所以此小节的任务为 class Scanner {constructor (templateStr ){//将模板字符串写到实例身上this.templateStr templateStr//指针this.pos 0//尾巴刚开始为字符串本身this.tail templateStr}//让指针跳过目标进而扫描后面的内容scan(target){this.pos target.lengththis.tail this.templateStr.substring(this.pos)}//扫描字符串直到扫描到目标返回目标之前的字符串scanUtil(target) {let recordPosValue this.pos//如果该字符串的地一个元素即该目标的索引不为0时说明指针还需要往右走while(this.tail.indexOf(target)!0this.posthis.templateStr.length){this.pos;//尾巴变为pos后面的部分this.tail this.templateStr.substring(this.pos)}return this.templateStr.substring(recordPosValue,this.pos)} } export default function becomeEasyToken (templateStr){let token []//实例化一个扫描器针对模板字符串工作let scanner new Scanner(templateStr)while(scanner.postemplateStr.length){let word;word scanner.scanUtil({{);if(word !){token.push([text,word])}scanner.scan({{)word scanner.scanUtil(}})if(word !){if(word[0] #){token.push([#,word.substring(1)])}else if(word[0]/){token.push([/,word.substring(1)])}else{token.push([name,word])}}scanner.scan(}})}return token } 以上代码没有处理 # 的循环功能 所以还必须添加一个函数并对该返回值稍加修改 import foldToken from ./foldToken; export default function becomeEasyToken (templateStr){let token []//实例化一个扫描器针对模板字符串工作let scanner new Scanner(templateStr)while(scanner.postemplateStr.length){let word;word scanner.scanUtil({{);if(word !){token.push([text,word])}scanner.scan({{)word scanner.scanUtil(}})if(word !){if(word[0] #){token.push([#,word.substring(1)])}else if(word[0]/){token.push([/,word.substring(1)])}else{token.push([name,word])}}scanner.scan(}})}return foldToken(token) } export default function foldToken(tokens) {//结果数组let nestedTokens []//栈结构存放小tokenslet section [];//与nestedTokens指向的是同一数组该数组为一级数组let collentor nestedTokensfor (const item of tokens) {switch (item[0]) {case #://进栈section.push(item)collentor.push(item)//创建新一级的数组collentor item[2] [] break;case /://出栈section.pop(item)//如果都出完了则回到一级数组还没出完则回到其上一级collentor section.length0?section[section.length-1][2]:nestedTokensbreak;default://仅负责给各级数组添加 text 元素collentor.push(item)}}return nestedTokens; } 效果展示:
http://www.dnsts.com.cn/news/85561.html

相关文章:

  • 青海企业网站制作网站建设的单词
  • 网站文章发布wordpress商品分类
  • 石家庄网站建设培训汕头app制作
  • 网站建设平台选用及分析江苏省建设厅网站建造师强制注销
  • 内江市建设培训中心网站红盾工商信息查询网
  • 上海网站建设 迈若陈江网站建设
  • 网站开发与数据库网站建设投入及费用
  • 关于建设网站的请示百度博客网站模板下载
  • 芷江建设工程招投标网站秦皇岛做网站汉狮网络
  • 漳州网站制作网络优化公司
  • 公司建网站 内部邮箱广告平面设计教程
  • 如何用织梦做网站装修计划方案
  • 深圳有哪些网站是做餐饮沙龙的VPS如何做网站服务器
  • 建立网站ftp森普网站建设
  • 网站内页标题有什么好的推广平台
  • 手机可以设计网站吗免费申请二级域名
  • 山东建站张家口网站建设开发
  • 中国工商银行官方网站登录个人微信公众号申请
  • 网上书店网网站建设天津网站经营性备案
  • 房山区做网站wordpress怎么登陆地址
  • 上海网站开发caiyiduo互联网公司用wordpress
  • 做色流网站要注意什么地方html5前端开发工程师
  • 重庆做网站多少钱建站软件安卓
  • 宜昌永东建设网站做网站买空间
  • 如何利用php开源系统建立php网站国内做网站最好的公司
  • 中粮我买网是哪个公司做的网站昆山花桥做网站
  • a站播放量最高的视频中国免费网站服务器主机域名
  • 重庆公司建设网站房地产设计图与规划图
  • 中小学生做试卷的网站6软件开发项目
  • 上海中学门户网站现在做一个app大概多少钱