uni-app
创始人
2024-02-09 17:15:38
0
  1. 路由传参
uni.navigateTo({ url: `@/pages/me/name=${'James'}&age=${18}` })url有长度限制,太长的字符串会传递失败,并且不规则的字符格式也可能导致传递失败,
所以对于复杂参数建议使用encodeURI、decodeURI 进行转码处理,然后传递.
  1. 绝对路径
项目中文件,样式文件都建议使用@绝对路径
import add from '@/common/add.js'
@import url('@/common/uni.css') 
  1. 代码目录
    static下的目录,js文件不会被webpack编译,里面如果有es6的代码,不经过转换直接运行,在手机设备上会报错.
    所以less,scss等资源同样不要放在static目录下,建议这些公共的资源放在common目录下.

  2. 设置导航名

uni.setNavigationBarTitle({title: '......'
})
  1. 两列的布局可以使用 uni-grid 组件

  2. 文字左右横线 样式

第三方直接登录

  1. view标签自带一个点击属性 hover-class
.btn-active {opacity: 0.7;
}
  1. 背景图充满全屏
filter: blur(3px)  背景图片模糊度,数值越大越模糊
  1. v-for跟v-if 一起使用
    v-for循环跟v-if在同一个标签时,可以把v-for提出来用 block 标签进行包裹着循环
    这里如果用template标签,很可能会报错

  2. 文字悬浮在图片上
    外层定位,需要改成相对定位: position: relative;
    需要悬浮的文字需要设置成绝对定位: position: absolute;
    参考: https://www.bilibili.com/video/BV1NY4y1q7Cv/?p=37&spm_id_from=pageDriver&vd_source=03cb065581da9959d84a1d21186a3ddb

  3. 项目代码中配置代理

manifest.json源码视图中:
"h5":{"devServer":{"proxy":{"/douyu":{"target":"https://m.douyu.com","changeOrigin":true,"secure":true,"pathRewrite":{"^/douyu":""}}}}
}组件中:
data() {return {// 条件编译: uniapp开发的代码需要能够编译到 H5 APP 小程序 3种不同的平台, 不可避免的会有一些代码 针对某些平台有效的// 条件编译 利用特殊的格式, 让uniapp识别出代码是给哪个平台编写的// #ifndef H5url: 'https://m.douyu.com/api/room/list',// #endif// #ifdef H5// 此url地址是代理写法, 而代理写法是针对于浏览器的, 不适用于 手机端和小程序url: '/douyu/api/room/list',// #endif}
},
  1. 回到顶部

goToTop() {uni.pageScrollTo({scrollTop: 0,duration: 300,success: () => {this.showGoTop = false}})
}
  1. 超长文本,只显示两行,超出部门显示 …
.title {overflow: hidden;text-overflow: ellipsis;line-clamp: 2;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;
}
  1. 生命周期
    uni-app 生命周期分3类:
    (1) 应用级别: App.vue中
    (2) 页面级别: 模仿微信小程序(页面中也可以写Vue中的几个生命周期) https://uniapp.dcloud.net.cn/tutorial/page.html#lifecycle
    (3) 组件级别: Vue组件 https://uniapp.dcloud.net.cn/tutorial/page.html#componentlifecycle

  2. easycom组件规范, uniapp中直接搜easycom
    https://uniapp.dcloud.net.cn/component/#easycom%E7%BB%84%E4%BB%B6%E8%A7%84%E8%8C%83
    uni-app中要求小写的,eg:
    vue中组件名要求大驼峰命名,eg:

  3. Hbuilder x 中编辑代码
    安装插件prettier,设置保存自动格式化
    写代码时,没有弹出提示, alt + / 可以弹出代码提示
    clog 是console.log() 的快捷键

  4. 处理日期

const date = new Date(val)
const year = date.getFullYear()
const month = (date.getMonth()+1).toString().padStart(2,0)
const day = date.getDay().toString().padStart(2,0)
  1. 页面通信
    参考官网: https://uniapp.dcloud.net.cn/tutorial/page.html#%E9%A1%B5%E9%9D%A2%E9%80%9A%E8%AE%AF

  2. 条件注释实现跨端兼容

以 ifdef 开头,以#endif结尾
页面中:
...
JS中:
// #ifdef MP-WEIXIN...
// #endif样式文件中:
/* #ifdef MP-WEIXIN */...
/* #endif */
  1. 页面跳转
    (1)navigateTo, redirectTo 只能打开非 tabBar 页面。(redirectTo会销毁当前页面,再去跳转. navigateTo不会,并且跳转之后的页面有返回按钮)
    (2)switchTab 只能打开 tabBar 页面(会销毁已经打开过了的非 tabBar 页面)
    (3)reLaunch 可以打开任意页面
    页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar
    不能在 App.vue 里面进行页面跳转
    参考官网: https://uniapp.dcloud.net.cn/component/navigator.html#navigator
跳转至详情页(非tabBar页面)
跳转至联系我们页(tabBar页面)
跳转至详情页(非tabBar页面)


goDetail(){uni.navigateTo({url:'/pages/detail/detail?id=' + '123' + '&name=' + '哈哈'})
},
goContact(){uni.switchTab({url:'/pages/contact/contact'})
},
goDetailByRedirect(){uni.redirectTo({url:'/pages/detail/detail'})
}
  1. 应用生命周期函数
    onLaunch 当uni-app初始化完成时触发(全局只触发一次)
    onShow 当uni-app启动,或从后台进入前台显示
    onHide 当uni-app从前台进入后台
    onError 当uni-app报错时触发

  2. 接口请求
    header 中 content-type 默认为 application/json
    参考: Form Data 格式传参: https://www.jianshu.com/p/17f22797b52a
    解决了问题: jscn-app代码 ‘修改密码’ 功能,需要采用 Form Data 格式传参
    在request.js中,设置: config.header[‘Content-Type’] = ‘application/x-www-form-urlencoded’
    data不要用 JSON.stringify去转换,否则会把{}传到后台了.

  3. HBuilderX 每次提交代码git pull / git push 都需要输入账号密码
    解决办法: 在终端中输入 git config --global credential.helper store 即可
    参考了: https://blog.csdn.net/li22356/article/details/114024676

相关内容

热门资讯

中证A500ETF摩根(560... 8月22日,截止午间收盘,中证A500ETF摩根(560530)涨1.19%,报1.106元,成交额...
A500ETF易方达(1593... 8月22日,截止午间收盘,A500ETF易方达(159361)涨1.28%,报1.104元,成交额1...
何小鹏斥资约2.5亿港元增持小... 每经记者|孙磊    每经编辑|裴健如 8月21日晚间,小鹏汽车发布公告称,公司联...
中证500ETF基金(1593... 8月22日,截止午间收盘,中证500ETF基金(159337)涨0.94%,报1.509元,成交额2...
中证A500ETF华安(159... 8月22日,截止午间收盘,中证A500ETF华安(159359)涨1.15%,报1.139元,成交额...
科创AIETF(588790)... 8月22日,截止午间收盘,科创AIETF(588790)涨4.83%,报0.760元,成交额6.98...
创业板50ETF嘉实(1593... 8月22日,截止午间收盘,创业板50ETF嘉实(159373)涨2.61%,报1.296元,成交额1...
港股异动丨航空股大幅走低 中国... 港股航空股大幅下跌,其中,中国国航跌近7%表现最弱,中国东方航空跌近5%,中国南方航空跌超3%,美兰...
电网设备ETF(159326)... 8月22日,截止午间收盘,电网设备ETF(159326)跌0.25%,报1.198元,成交额409....
红利ETF国企(530880)... 8月22日,截止午间收盘,红利ETF国企(530880)跌0.67%,报1.034元,成交额29.0...