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

山东省住房城乡建设厅网站首页耒阳市古雍网站建设店

山东省住房城乡建设厅网站首页,耒阳市古雍网站建设店,来推网站,企业官方网站制作起因 事情是这样的 一天早上组里还早激烈的讨论某个项目的可用性和发展前景#xff0c;突然老大说了句#xff0c;能不能做个小程序的版本呢#xff1f;然后大家纷纷讨论起来#xff0c;有反对有支持#xff0c;我就说了一句#xff0c;刚出来的时候搞过一会。。。然后就… 起因 事情是这样的 一天早上组里还早激烈的讨论某个项目的可用性和发展前景突然老大说了句能不能做个小程序的版本呢然后大家纷纷讨论起来有反对有支持我就说了一句刚出来的时候搞过一会。。。然后就把我推出来了日了狗了~~ 这个项目大概一个星期之后就要推出去了换句话说我要一个星期内搞个小程序的版本出来宝宝有点慌了~~ 不过既然接手了还是要好好做的首先的完全自己搞肯定是来不及项目的模块绝对要复用起来思索下大概有3点需要搞 HTMLCSSjavascript moduleCSS 其中CSS在小程序的叫做WXSS基本和CSS语法类似了也就需要将标签选择器改了比如 table{//XXX } //改成 .table{} 还有就是WXSS的尺寸单位比较推荐使用rpx但是这里还是继续使用px当然在响应式方面还需要自己改改工程量不是很大 JS 对于JS方面就比较棘手了一点唯一庆幸的是原项目是用vue来做框架搭建的仔细观察下小程序框架的语法结构发现其实和vue很类似都具备生命周期和各种事件绑定等等所以在整体JS结构上面大概有几点需要修改 生命周期函数 created: function () {//xx}//改成onLoad: function() {} 数据绑定this.container ; //改成 this.setData({container: }); 剩下的就是模块的引用小程序本身也支持ES6语法但还是有缺陷比如不支持promise可以通过引入相应的polyfill 来解决还能顺便让小程序本身的API也应用上promise //util.js import Promise from ./bluebird.min; export const wxPromise function(fn) {return function (obj {}) {return new Promise((resolve, reject) {obj.success function(res) {resolve(res);}obj.fail function(err) {reject(err);}fn(obj)})} } 可以在需要调用的地方引入或者直接在APP.js里面封装原API然后挂载在全局上面 import {wxPromise} from ../../utils/util; let login wxPromise(wx.login); let getUserInfo wxPromise(wx.getUserInfo); login().then((res) {console.log(res);return getUserInfo();}).then((res) {console.log(res);}).catch((res) {console.log(res);}) 原项目里面的模块还调用了window对象的属性比如localstorage、innerWidth、innerHeight等等在开发工具里面输出console.log(window)直接甩了我一个大大undefined呵呵都快崩溃了后来想想也不是完全没有办法小程序也有类似的API来实现这些方法和属性我要做的就是造一个window对象给它就可以了老样子直接挂载全局就行 App({window: {},location: {href: http://localhost/index.html?clear},onLaunch: function() {let _this this;getSystemInfo().then((res){_this.window.innerWidth res.windowWidth;_this.window.innerHeight res.windowHeight;})_this.window.localStorage {};_this.window.localStorage.setItem wx.setStorageSync;_this.window.localStorage.getItem wx.getStorageSync;_this.window.localStorage.clear wx.removeStorageSync;}})//注入到页面或者模块 let {window, location} app; HTML 最后一个难题就是HTML了首先HTML直接套在WXML上面是行不通的结果是可以编译显示出来但是完全失去了HTML各个标签的意义比如div块级标签所具备的属性都不存在了当然你可以通过WXSS添加属性来兼容比如 div, p {display:blcok } 我个人并不赞同这种做法因为在HTML中img、canvas等等并没有要求闭合标签但是WXML是严格要求每个标签都要有闭合就是说你想通过添加WXSS属性来兼容的话首先要手动加img和canvas的闭合标签(在小程序中img标签应该是image不然还是无法显示图片)其次就是怕官方下次更新迭代突然加入div这个组件然后又要改版烦~~那么唯一的出路就是将HTML转成符合小程序的WXML出来作为一个程序员手动改也太掉价了。。。直接上工具google查下发现网上也有类似的工具出来工具的转换原理是这样的话首先HTML先转换成json对象然后注入到模版由模版生成。但是有2个问题1、转换出来的WXML是依赖模版渲染的首先小程序的模版是不支持递归调用的就是说假如你的标签有6层嵌套的话那么你需要复制6份模版出来然后tmp1嵌套tmp2...temp6这样的话你只能祈祷工具带来的模版有嵌套了足够多。2、无法实现数据绑定比如 div{{text}}/div //转换后原样输出了{{text}} view{{text}}/view 既然模版输出这条路走不通那就只能借助node动态的输出WXML思路和上面差不多也是HTML生成json dom然后递归渲染wxml节点最后输出一份wxml文件工具的实现在这里细节就不多说了目前还没有做canvas、audio、video标签的转换有BUG的话直接提issue最后求star 总结 没事别BB
http://wiki.neutronadmin.com/news/27259/

相关文章:

  • 电子商务网站建设维护实训报告他达拉非
  • 网站建设的小结国内做网站群平台的公司
  • 做网站公司的年终总结动漫设计哪个大学好
  • 网站建设模范代码山西制作网站
  • 大连哪家公司做网站好嘉兴网站制作哪里好
  • 客户关系管理定义seo的作用
  • 网站搭建什么意思网站底部留言代码
  • 用于网站建设的图片网店美工具体要求
  • 企业网站建设2017sem工作内容
  • 小红书网站开发形式选择wordpress模板知更鸟
  • 企业网站源码打包wordpress菜单怎么添加图片
  • 查建筑企业信息的网站安徽省建设信息管理平台
  • 长沙专业网站建设运营向wordpress发帖插件
  • 学网站开发应该学什么网站建设的定位是什么意思
  • 丽江建设网站电商网站开发技术与维护
  • 网站如何做抖音推广入侵网站被判多少年
  • 建设企业手机银行电商seo搜索引擎优化
  • 旅游网站专业化建设的要点腾讯公司
  • 做网站还 淘宝广州seo优化电话
  • 在线教育网站有哪些东台网站设计
  • 做贸易要看什么网站网站建设+泰安
  • 做网站推广的 什么是开户在云服务器上搭建网站
  • 网站建设行业发展方向常州做网站基本流程
  • 素材网站怎么推广重庆市建设工程信息网上查询
  • 专业的网站开发团队需要哪些人泰安企业建站公司排行
  • 网站开发算互联网公司吗wordpress 小工具添加图片大小
  • 网站被k 如何恢复南宁网站seo顾问
  • 个人怎么建立网站万网 网站空间
  • 制作企业网站一般多少钱慈溪网站建设哪家好
  • 做的新网站网上搜不到有什么网站用名字做图片