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

英文建站模板做雷达干扰的网站

英文建站模板,做雷达干扰的网站,类似享设计的网站,白云区新闻例如:下图所示: 依次识别获取.js文件中的tag和props,可以理解为字符串拼接,将整个vue的标签结构看作是一个字符串。 话不多说,先放上完整代码,思路看代码备注。(自己实现的时候,可以…

例如:下图所示:

依次识别获取.js文件中的tagprops,可以理解为字符串拼接,将整个vue的标签结构看作是一个字符串。

话不多说,先放上完整代码,思路看代码备注。(自己实现的时候,可以先把tag标签,即vue结构弄出来,后续再加上props属性,这样思路会更加清晰)

实现方法:

首先想到的是利用递归,一点一点的拼接字符串,因为.js文件到底多大是不确定的。

data() {return {previewContent: '',suojinStr: ''// 获取缩进字符}},methods: {handlePreview() {var jsdata = require('../../../public/js/bbb.js') //获取文件this.obtainData(jsdata.default) //调用递归方法this.previewContent = '<template>' + this.previewContent + '\n' + '</template>'},obtainData(data) {var children = data.childrenif (children) {this.suojinStr += '\t'for (var i = 0; i < children.length; i++) {// 拼接字符串:换行符+缩进+开始标签this.previewContent += '\n' + this.suojinStr + '<' + children[i].tag + '>'// 获取props相关数据---放在开始标签的里面--比开始标签在往里缩进一格if (children[i].props !== undefined) {for (var key in children[i].props) {// 拼接字符串:换行符+缩进+(再一格缩进)+props的内容this.previewContent += '\n' + this.suojinStr + '\t' + key + '=' + '"' + children[i].props[key] + '"'}}// 调用自身,递归---挖掘孩子节点,一层一层拼接this.obtainData(children[i])// 拼接字符串:换行符+缩进+结束标签---当没有孩子时,闭合标签this.previewContent += '\n' + this.suojinStr + '</' + children[i].tag + '>'}// 结束标签的空格回退---父亲的结束标签和和父亲的开始标签对齐,所以等没有孩子时,回退一格缩进this.suojinStr = this.suojinStr.substr(1)}}}

后面,和Sweny-blog讨论了一下,发现她的字符串是整个拼接起来的,不像我拼接的这么零碎。然后我也尝试了一下拼接完整版。

methods: {handlePreview() {var jsdata = require('../../../public/js/bbb.js')this.previewContent = this.obtainData1(jsdata.default)this.previewContent = '<template>' + this.previewContent + '\n' + '</template>'},obtainData1(data) {// 换行+缩进+首标签+递归(找孩子)+换行+缩进+尾标签var previewContent = ''var children = data.childrenif (children) {this.suojinStr += '\t'for (var i = 0; i < children.length; i++) {// 获取props属性的值---这块可以写成一个函数,后面完整拼接的时候,直接调用就行了var propsStr = ''if (children[i].props !== undefined) {for (var key in children[i].props) {propsStr += '\n' + this.suojinStr + '\t' + key + '=' + '"' + children[i].props[key] + '"'}}// 完整的拼接previewContent += '\n' + this.suojinStr + '<' + children[i].tag + '>' + propsStr + this.obtainData1(children[i]) + '\n' + this.suojinStr + '</' + children[i].tag + '>'}// 结束标签的空格回退this.suojinStr = this.suojinStr.substr(1)}return previewContent},}

这里面用到了previewContent这个局部变量进行拼接

为什么要使用局部变量?不像之前使用全局变量?

因为,拼接字符串中,调用了this.obtainData1(children[i])获取孩子拼接的字符串。若是全局变量,没有清空的过程,它会累加多余的字符。这里涉及到的知识点是变量作用域。

下面简单写个相似的递归:

function test1(num){var str = ''console.log('外面的str:'+ str)num++if(num<5){str+='a'+test1(num)console.log('if里面的str:'+ str)}return str;
}test1(0);

依次输出:

递归的过程是一层一层调用函数,每调用一个函数,又重新声明赋值了变量str,这就相当于子函数重新生成了一个同名变量,操作的是自己的变量。这个return str,是每次递归调用子函数,子函数返回的字符串,一层一层的累加。

其实相当于:先走到最内层,然后从最内层一层一层往外加str。

再看一个var变量作用域的示例:

var a = 1
function test4(){var a= 2;console.log(a)
}console.log(a) // 输出:1
test4();       // 输出:2
console.log(a) // 输出:1

若是还不懂,之前发过一篇博客JS中变量(var、let、const)的声明提升和作用域梳理专门讲作用域的,可以看看。

http://www.yayakq.cn/news/816564/

相关文章:

  • com域名网站排名优先广州越秀区儿童医院
  • 网站赚钱平台ui设计哪家培训好
  • 注册网址的网站百度搜索引擎优化的推广计划
  • 温州市建设厅网站首页开发公司名称
  • 大连网站制作最好的公司在线教育做网站好还是app好
  • 织梦做信息分类网站iis访问网站打开要很久
  • 建设品牌公司网站wordpress媒体库在哪
  • linx服务器怎么做网站wordpress 评论栏
  • 扁平配色网站网络教育平台登录入口
  • 有必要花钱学视频剪辑吗毕节网站怎么做seo
  • 专业的上海网站建设郑州网站建设居易国际
  • 昆明软讯科技网站建设闸北微信网站建设
  • 福州品牌网站建设公司怎么做网店
  • 我的世界做指令的网站台州网站排名优化
  • 自适应网站做推广做网站需要会哪些编程语言
  • 德宏做网站网站seo入门基础教程
  • 域名做非法网站免费WordPress的产品展示
  • 网站seo成功的营销型网站设计特点
  • 网站跳出率很高会员管理系统设计
  • 移动网站如何优化排名网站管理建设工作报告
  • 网站建设的费用结构包括博州住房和城乡建设局网站
  • 传媒公司注册需要多少钱百度快速优化软件排名
  • 网站编辑属于什么行业百度竞价排名软件
  • 青海省建设厅网站首页wordpress前台很慢
  • 蓬莱网站建设公司青岛网站设计公司联系方式
  • 郑州网站优化汉狮3d建模软件手机版下载
  • 网站最近不收录开发一个小程序游戏要多少钱
  • 网站底部版权怎么做做淘宝优惠券网站
  • 哪里有做网站的素材黄页网络的推广网站有哪些类型
  • 启用中文域名大网站开发微信公众