weex踩坑記錄
阿新 • • 發佈:2018-11-27
weex框架樣式問題--我暫時使用最基本的樣式css,weex前端開發的話web端會顯示各種的html標籤。寫出的樣式也都會顯示的很好,但是在app端的話,就沒有很好的相容性,只是支援文件中的一些標籤,樣式也是隻支援sing-class。
weex的請求框架steam,是weex的自帶model,在處理post的時間要對傳入的資料進行處理,不然不會出現你想要的資料。處理方式:
let http,jsonType = '' if (WXEnvironment.platform === 'Web') { http = http://yapi.youximao.cn/mock/141 jsonType = 'json' } else { http = 'http://102.108.50.100:8880/' jsonType = 'json' } let stream = weex.requireModule('stream') const methods = { toParams(obj) { var param = "" for(const name in obj) { if(typeof obj[name] != 'function') { param += "&" + name + "=" + encodeURI(obj[name]) } } return param.substring(1) }, GET (api, callback) { return stream.fetch({ method: 'GET', type: 'json', url: http + api }, callback) }, POST (api, data, callback) { return stream.fetch({ method: 'POST', headers:{'Content-Type': 'application/x-www-form-urlencoded'}, type: jsonType, body: this.toParams(data), url: http + api }, callback) } } export default methods
碰到了一個很坑的問題,network獲取正常資料但是在列印在控制檯的時間data為null。這個問題應該是後端返回資料有問題,我修改了下mock的資料皆可以了。
weex剛剛進入頁面的話要執行的函式,要寫在鉤子函式
beforeMount
裡面這樣才會執行,寫在created裡面 在app端是不執行的。
created () { window.initFontSize(750) }, beforeMount () { this.getAllInitData() },
weex發出請求在web端會出現跨域問題。mock的話是不會的,我放到了開發環境就出現了跨域問題,後端大牛是設定的可以跨域的。第一,修改hosts檔案。可以自行百度,很多牛人幫忙解答,再者就是瀏覽器的安全機制保護,我是chorme除錯的,把chorme瀏覽器設定成可以跨域的瀏覽器。
出現上面的命令就可以進行在web端除錯。
碰到問題大家可以一起討論,大家一起踩坑。。472027267