当前位置: 首页 > 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}}岁<h1>
`
templateStr = 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)!=0&&this.pos<this.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.pos<templateStr.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.pos<templateStr.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.length>0?section[section.length-1][2]:nestedTokensbreak;default://仅负责给各级数组添加 "text" 元素collentor.push(item)}}return nestedTokens;
}

效果展示:

 

http://www.mmbaike.com/news/111528.html

相关文章:

  • 企业网站分为哪三种类型百度如何添加店铺位置信息
  • 网站建设公司计划书搜索引擎营销的英文缩写
  • 上海高端网站建设制作seo推广软件代理
  • 影视后期制作培训机构全国排名seo研究中心道一老师
  • 做网站效果怎么样电商网站商品页的优化目标是什么
  • 动漫制作专业专升本考什么专业上海seo优化公司 kinglink
  • 一家做特卖的网站叫什么百度一下京东
  • 网页设计 参考网站外贸网站有哪些平台
  • 长沙建站费用seo优化厂商
  • 做网站书面报告申请如何自己做一个网页
  • 邢台做网站可信赖定制网站和模板建站
  • 国内使用wordpress的超级优化大师下载
  • 做公司网站需要注意什么网站seo哪里做的好
  • 关于旅游网站建设的方案百度竞价排名公司
  • 南宁软件优化网站建设河源seo
  • 网站改版影响排名吗安卓优化大师app
  • 游戏道具网站开发seo3的空间构型
  • 天津社会面疫情最新消息在运营中seo是什么意思
  • 做一家网站费用吗新闻平台发布
  • 平台类网站做多久网络广告的计费方式
  • 微信上打开连接的网站怎么做seo石家庄
  • 四川省住房和城乡建设厅官方网站杭州网站设计公司
  • 冒险岛2做乐谱网站百度搜索指数的数据来源
  • 企业门户网站数据库设计在线生成个人网站app
  • wordpress 返回首页内江seo
  • 北京做网站制作的公司镇江网站建站
  • 专业做私募网站发软文
  • 物流网站免费模板合肥seo整站优化网站
  • 深圳网站设计公司排名前十强深圳市前十的互联网推广公司
  • 北京朝阳住房和城乡建设委员会网站seo上海公司