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

微信小程序怎么做网站辽宁智能建站系统价格

微信小程序怎么做网站,辽宁智能建站系统价格,wordpress用途,百度热门搜索排行榜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/9553.html

相关文章:

  • 安徽网站设计流程怎么在百度上建立网站
  • psd做成网站潍坊网站建设首荐创美网络
  • 做正常站网站都被墙了网络营销工具的分类
  • asp.net网站开发流程及相关工具网站建设比较好
  • 医疗软件网站建设公司排名加盟商网站建设
  • 网站收缩广告沧州*网站建设
  • 郑州建设网站企业关键词指数
  • 北京网站建设学习帝国cms做漫画网站教程
  • 上海正规做网站公司报价泉州住房和城乡建设局网站
  • 浙江龙泉建设局网站郑州网站建设技术方案
  • 网站群站优化品牌网络推广运营公司
  • 校园网站建设建议音乐建设网站
  • 婚纱照网站绵阳网站开发公司
  • 河南省城乡和住房建设厅网站成都制作手机网站
  • 如何设置的iis后台服务网站地址二次元wordpress博客主题
  • 优质的seo网站排名优化软件建立大型网站流程
  • 陕西省住房和城乡建设厅网站首页互联网产品设计
  • 移动端网站建设需要注意哪些问题wordpress图片弹窗
  • 花生壳软件做的网站柬埔寨网站开发
  • 怎样申请免费的网站空间宁波公司网站建立
  • html5中文网站欣赏东莞常平镇邮政编码
  • 密云区免费网站建设网站建设 排名宝下拉
  • 免费打开的网站h5网站开发框架
  • 宁波网站关键词优化排名一个公司可以做多少个网站
  • 做网站用多大的服务器wordpress 注册界面
  • 免费虚拟主机网站源码商城app源码
  • 建网站底部怎么做的做网站空间百度云和阿里云区别
  • 潮州网站设计网站建设企业网站建设
  • 西安网址开发 网站制作短视频运营
  • 怎样查网站的注册地点企业网站推广成功案例