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

中国电建市政建设集团有限公司网站用python做网站前端

中国电建市政建设集团有限公司网站,用python做网站前端,百度指数的特点,珠海选车牌号网站系统es6字符串模板 我们经常搞前端开发工作的都会用到。它可以保留字符串换行格式,还能接受变量。这个给前端的字符串拼接带来了非常大的方便。但是还有一种用法可能是我们平时还是没有怎么用到的。 styled-components 在项目中熟悉使用react的童鞋可能会用过styled-…

es6字符串模板

我们经常搞前端开发工作的都会用到。它可以保留字符串换行格式,还能接受变量。这个给前端的字符串拼接带来了非常大的方便。但是还有一种用法可能是我们平时还是没有怎么用到的。

styled-components

在项目中熟悉使用react的童鞋可能会用过styled-components,它的写法如下:

const Title = styled.h1`font-size: 1.5em;text-align: center;color: palevioletred;
`;

效果

最终就是生成一个带有上面样式属性的h1标签。

es6基础

这里看到它用到的就是es6的字符串模板。一开始我以为是预编译工具的语法。后面重温js基础时候看到了这个:

`string text``string text line 1string text line 2``string text ${expression} string text`tagFunction`string text ${expression} string text`

developer.mozilla.org

代码来源:模板字符串 - JavaScript | MDN

字符串模板前面是可以接受函数名字的,而这个函数的参数 arguments的内容是个数组,数组的第一个值是所有普通字符串的数组,剩余的元素是模板里面变量值

例如上面的代码tagFunction`string text ${expression} string text`

假设expression遍历的值是100,tagFunction的arguments的值就是

[["string text","string text"],100,
...其他变量值 //这里只有一个变量,所以不存在其他变量值]

 所以,我们可以理解是执行了tagFunction函数并给该函数传递了解析字符串`string text ${expression} string text`对象

新的书写风格

既然是执行函数,那函数是可以返回值的,那我们可以在这个函数里面return个函数,这样我们就有机会把代码写成这样


alink.styles`color:${color};font-size:16px;background-color:${bgColor};
`
.props`href:${url};tabIndex:1;`
.content`跳转到:${url}`
  1. styles设置样式属性
  2. props设置标签属性
  3. content设置标签内容 

HTMLElement对象拓展

那我们给html标签对象进行拓展方法如下:

 HTMLElement.prototype.styles = function () {return this
}
HTMLElement.prototype.props = function () {return this
}
HTMLElement.prototype.content = function () {return this
}

还需要对 arguments对象进行解析,得到key,value

解析arguments

const getAttAndValueString = (args, isContent) => {let startIndex = 0const attr = args[0].map((item) => {return item.replace('\n', '').replace(/\s/g, '').trim()}).filter(item => item)const value = args.slice(1).filter(item => item)let resultString = ''attr.forEach((element, index) => {if (element.endsWith(':') || isContent) {resultString += `${element}${value[startIndex]}`startIndex++} else {resultString += `${element}`}})return resultString
}

最终代码

  const getAttAndValueString = (args, isContent) => {let startIndex = 0const attr = args[0].map((item) => {return item.replace('\n', '').replace(/\s/g, '').trim()}).filter(item => item)const value = args.slice(1).filter(item => item)let resultString = ''attr.forEach((element, index) => {if (element.endsWith(':') || isContent) {resultString += `${element}${value[startIndex]}`startIndex++} else {resultString += `${element}`}})return resultString}HTMLElement.prototype.styles = function () {let resultString = getAttAndValueString(Array.from(arguments))console.log("resultString", resultString)const styleAttr = this.getAttribute("style");if (styleAttr) {resultString = `${styleAttr.endsWith(";") ? styleAttr : styleAttr + ";"} ${resultString}`}this.setAttribute("style", resultString);return this}HTMLElement.prototype.props = function () {// let resultString = getAttAndValueString(Array.from(arguments))// let obj = resultString.split(";").filter(item => item.length > 0)// obj.forEach(item => {//     const [prop, ...value] = item.split(":");//     this.setAttribute(prop, value.join(":"))// })return this}HTMLElement.prototype.content = function () {// this.innerText = getAttAndValueString(Array.from(arguments), true)return this}var alink = document.querySelector('#alink')var color = 'red'var bgColor = 'blue'var url = 'http://baidu.com'alink.styles`color:${color};font-size:16px;background-color:${bgColor};`.props`href:${url};tabIndex:1;`.content`跳转到:${url}`

在线效果

https://jsbin.com/kawumewoto/4/edit?html,js,output

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

相关文章:

  • o2o网站开发微信制作微网站开发
  • 潍坊信息网网站建设论mvc框架在网站开发的应用
  • 手机网站定制建设百度平台推广
  • 衡水建个网站多少钱wordpress 后台图标
  • 网站开发终止合作协议北京做网站建设
  • 广西网站开发泰安建设厅网站
  • 一个做网站的团队需要哪些网站右侧浮动广告代码
  • 专门做简历的网站有哪些创建网站的目的是什么
  • 网站的规划和建设越城网站建设公司
  • 网站怎么建设与管理怎样安装网站模板
  • 网站屏蔽ip地址定制东西的app
  • 电子商务静态网站建设心得模版型网站
  • 高端品牌网站建设兴田德润可信赖建设网站读什么专业
  • 河源市规划建设局网站一套金蝶erp系统多少钱
  • 番禺建设网站梁平网站建设
  • 网站广告推广怎么做个人网站如何做移动端
  • asp.net 网站运行助手亚马逊全球购官网
  • 荆轲网络做网站门户网站免费奖励自己
  • 马鞍山网站建设服务开发合作建站协议
  • 自己做卖东西网站嘉定网站建设公司
  • 上海工程建设执业资格注册中心网站没有经验可以做新媒体运营吗
  • 临沂网站制作加速企业发展北京装修公司前十强
  • 网站建设外包合同智慧团建电脑版登录官网
  • 上海工程建设执业资格注册中心网站网站开发里的输入
  • 网站功能提升权限房产网站电商怎么做
  • 安能物流网站建设网站的策划书
  • 网络知识网站中国城乡建设部官网
  • win8风格 网站模板门户网站整改报告
  • 黄岛做网站哪家好wordpress固定连接只能访问首页
  • 丹寇服饰官方网站外国工业设计网站