uniapp项目问题及解决(前后端互联)

1.路由跳转的问题

uni.navigateTo() 保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面

uni.redirectTo()

关闭当前页面,跳转到应用内的某个页面。

uni.reLaunch()

关闭所有页面,打开到应用内的某个页面

uni.switchTab()

跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。

uni.navigateBack()

关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。

2.tabBar的使用

tabBar": {
        "color": "#333333",
        "selectedColor": "#1890FF",
        "backgroundColor": "#ffffff",
        "list": [{
                "pagePath": "pages/index/index", //页面路径
                "text": "首页", //按钮文字
                "iconPath": "static/首页01.png", //图片路径
                "selectedIconPath": "static/首页001.png" //选中的图片路径
            },
            {
                "pagePath": "pages/addwork/addwork",
                "text": "添加",
                "iconPath": "static/添加01.png",
                "selectedIconPath": "static/添加001.png"
            },
            {
                "pagePath": "pages/user/user",
                "text": "我的",
                "iconPath": "static/我的01.png",
                "selectedIconPath": "static/我的001.png"
            }
    ]
    }

3.u-view组件的引入

刚开始时下载的2.0版本的u-view,看的1.8的文档,一直引入不对,只能通过important引入,在注册,之后才能使用,中间还发现有些组件不能用,后面发现了问题,换成2.0版本的文档,立马就能引入了,还是直接引入,不需要通过important引入,也不需要注册了,直接写标签就可以了

4.u-view组件的使用

使用过程中,有些属性方法,文档上没有,这个时候需要看他的github,直接看他的源码,就行了

5.组件的样式修改

1.在全局文件里面修改,这样会直接覆盖组件的样式

2.Vue 中,

::v-deep 用于深度作用选择器,可以让样式穿透到子组件中。

:global 则用于全局作用选择器,可以使样式不受组件的限制。

6.命名规范

一定要在刚开始的时候商量好,要不多人合作容易出现不同的风格

7.rpx和view的使用

都是为了自适应屏幕

8.前后端对接

一定要商量要不然会有进度差异,命名格式,字段名称啥的都说好,方便彼此,要不然后面修改不好修改

9需求文档

越早编写越好。这样对项目有一个明了的认识

10,axios的配置

import axios from 'axios';

// create an axios instance
const http = axios.create({
    baseURL: '', // url = base url + request url
    // withCredentials: true, // send cookies when cross-domain requests 注意:withCredentials和后端配置的cross跨域不可同时使用
    timeout: 4000, // request timeout
    crossDomain: true,
});

// request拦截器,在请求之前做一些处理
http.interceptors.request.use(
    (config) => {
        // if (store.state.token) {
        //     // 给请求头添加user-token
        //     config.headers["user-token"] = store.state.token;
        // }
        console.log(config.data);
        console.log('请求拦截成功');
        config.data = JSON.stringify(config.data);

        return config;
    },
    // const token = uni.getStorageSync("linkToken");
    //     config.headers['Content-Type'] = 'application/json';

    //     if (token) {
    //         config.headers.Authorization = `Bearer ${token}`;
    //     }
    //     return config;
    // },
    (error) => {
        console.log(error); // for debug
        console.log('sssssssssssssss');
        return Promise.reject(error);
    }
);

// 配置成功后的拦截器
http.interceptors.response.use((res) => {
    console.log(res);
    if (res.status === 200) {
        return res.data;
    } else {
        return Promise.reject(res.data.msg);
    }
}, (error) => {
    console.log(error);
    if (error.request.status) {
        switch (error.response.status) {
            case 401:
                break;
            default:
                break;
        }
    }
    return Promise.reject(error);
});


// 在main.js中放入这段自定义适配器的代码,就可以实现uniapp的app和小程序开发中能使用axios进行跨域网络请求,并支持携带cookie
axios.defaults.adapter = function (config) {
    return new Promise((resolve, reject) => {
        console.log(config);
        const settle = require('axios/lib/core/settle');
        const buildURL = require('axios/lib/helpers/buildURL');
        uni.request({
            method: config.method.toUpperCase(),
            url: config.baseURL + buildURL(config.url, config.params, config.paramsSerializer),
            header: config.headers,
            data: config.data,
            dataType: config.dataType,
            responseType: config.responseType,
            sslVerify: config.sslVerify,
            complete: function complete(response) {
                console.log('执行完成:', response);
                response = {
                    data: response.data,
                    status: response.statusCode,
                    errMsg: response.errMsg,
                    header: response.header,
                    config,
                };

                settle(resolve, reject, response);
            },
        });
    });
};

export default http;

11.axios配置过程中的问题

包的丢失,因为创建文件夹的时候是先创了一个文件夹,又创了项目,所以导致项目的的名称和文件的名称一摸一样,有的包配置的时候不知道怎么回事跑到了项目外面,导致的一直配置不出来,后面来回来就行了

12.样式不用写的那么急,先把模块设计好,后面的时候,再调就好了,写样式的时候可以参照网上的项目,要不自己凭感觉写的,不太好看

13.后端接口,先测试

这次写的时候,调用总宁的接口,能调用上去,但是这边一直一直传数据传不过去,最后问了学长,是自己配代理服务器的时候用的两个的端口都用的同一个,导致出的问题,

和后端连接我这边出了不少问题,一直有问题,一直改,还是太菜了

14.表单的检验

写表单的时候光注意样式了,复制的人家的源码,觉得上面的东西太多了,我就都删了,最后效果也能实现,但是没有检验了,后面能调用接口了,发现越来越别扭,因为没有校验,所以写啥都能过,果然不能省事,所以后面我还得再补,有点难受了,后面还得写reuls,还由页面结构也得在补包裹的对象

15.token的传递

在axios的配置里面可以直接传递

16.全局设置请求

target里面的http需要写不写的话,会报500错误

17,页面传参

通过url传参

url: /pages/workdetail/workdetail?id=${this.id}

18页面传参的时候出现问题

注意看apifoxs可能是后端的问题,也可能是前端的问题

  • 29
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值