1. 程式人生 > >weex踩坑記錄

weex踩坑記錄

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