uni.navigateTo({ url: `@/pages/me/name=${'James'}&age=${18}` })url有长度限制,太长的字符串会传递失败,并且不规则的字符格式也可能导致传递失败,
所以对于复杂参数建议使用encodeURI、decodeURI 进行转码处理,然后传递.
项目中文件,样式文件都建议使用@绝对路径
import add from '@/common/add.js'
@import url('@/common/uni.css')
代码目录
static下的目录,js文件不会被webpack编译,里面如果有es6的代码,不经过转换直接运行,在手机设备上会报错.
所以less,scss等资源同样不要放在static目录下,建议这些公共的资源放在common目录下.
设置导航名
uni.setNavigationBarTitle({title: '......'
})
两列的布局可以使用 uni-grid 组件
文字左右横线 样式
第三方直接登录
.btn-active {opacity: 0.7;
}
filter: blur(3px) 背景图片模糊度,数值越大越模糊
v-for跟v-if 一起使用
v-for循环跟v-if在同一个标签时,可以把v-for提出来用 block 标签进行包裹着循环
这里如果用template标签,很可能会报错
文字悬浮在图片上
外层定位,需要改成相对定位: position: relative;
需要悬浮的文字需要设置成绝对定位: position: absolute;
参考: https://www.bilibili.com/video/BV1NY4y1q7Cv/?p=37&spm_id_from=pageDriver&vd_source=03cb065581da9959d84a1d21186a3ddb
项目代码中配置代理
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}
},
goToTop() {uni.pageScrollTo({scrollTop: 0,duration: 300,success: () => {this.showGoTop = false}})
}
.title {overflow: hidden;text-overflow: ellipsis;line-clamp: 2;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;
}
生命周期
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
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:
Hbuilder x 中编辑代码
安装插件prettier,设置保存自动格式化
写代码时,没有弹出提示, alt + / 可以弹出代码提示
clog 是console.log() 的快捷键
处理日期
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)
页面通信
参考官网: https://uniapp.dcloud.net.cn/tutorial/page.html#%E9%A1%B5%E9%9D%A2%E9%80%9A%E8%AE%AF
条件注释实现跨端兼容
以 ifdef 开头,以#endif结尾
页面中:
...
JS中:
// #ifdef MP-WEIXIN...
// #endif样式文件中:
/* #ifdef MP-WEIXIN */...
/* #endif */
跳转至详情页(非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'})
}
应用生命周期函数
onLaunch 当uni-app初始化完成时触发(全局只触发一次)
onShow 当uni-app启动,或从后台进入前台显示
onHide 当uni-app从前台进入后台
onError 当uni-app报错时触发
接口请求
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去转换,否则会把{}传到后台了.
HBuilderX 每次提交代码git pull / git push 都需要输入账号密码
解决办法: 在终端中输入 git config --global credential.helper store 即可
参考了: https://blog.csdn.net/li22356/article/details/114024676
上一篇:Maven 项目中常用的工具包
下一篇:现货白银入门技巧:心理线