手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表分类:Javascript

uniapp backgroundImage 无法显示

突然发现uniapp好象无法分类。

用uniapp的时候突然发现使用背景图的时候打包无法打进去。本来这也没多大事,毕竟所有的图片几乎都是从网上拉过来的。但只是一个背景色也要从网上下载就有点麻烦了。所以就看了一下
1、如果不是变量的,得用相对路径,比如 /static/background.png,要写成 ../../static,注意当前文件和static的相对路径
2、如果是变量的,得一一require进来。然后用变量与require的对量对应
3、或者你还是用image标签,但是这个image标签外用view做好对应,如果上面有堆叠其他内容,会相对比较麻烦一点
4、还是用网上的地址吧,尽量使用云存储,不然如果是小水管网站,这么一拉取,其他内容可能变被卡住了。
 
基本上就这么些方法。

vite项目中使用process.env

 在Vite创建的项目中,如果直接使用process.env变量会报错,说是process未定义。查了下资料,原来这是vite3移除了这个变量:https://github.com/vitejs/vite/issues/1973

 
在项目的vite.config.ts的export default defineConfig中,增加节点:define{'process.env':{}}
如果要和你的env变量一致可以先loadEnv:
const root = process.cwd();
const env = loadEnv(mode,root);

 然后define节点就改成:define{'process.env':env}
 
此时,到项目里运行console.log(process.env),可以看到所有的变量。同时你会发现,只有VITE_开头的变量才能显示,其他都被隐藏了
 
在vite.config.ts中,建议是使用loadEnv来处理变量。否则如果你直接使用process.env。你会发现项目中所有的变量都显示了,一些系统变量也显示了,太危险。
 

小程序跳转踩坑

 为了方便开发,为navigatoTo和switchTab做了一个简单的封装,这样,其他开发人员就不用关心是跳到哪里去了。因为tab页只有5个(最大),所以优选用navigateTo,然后通过判断出错信息,再调用switchTab

然而就是在这个上面踩坑了。。。

开发者工具和IOS,在遇到tabbar页面的时候,出错信息是:{errMsg: "navigateTo:fail can not navigateTo a tabbar page"} ,毕竟,我是基于开发工具进行开发的,所以我直接偷懒。。。。。if (e.errMsg.includes('tabbar')),然后处理。

结果,在安卓上死活不能运行,我开始以为是url带了参数,去掉后发现还是不正常,于是我把出错信息打出来看一下,结果 发现,在android下,出错信息居然不一样。。它的出错信息是:{errMsg: "navigateTo:fail:can not navigate to a tab bar page"}。

看到不同点了么?

{errMsg: "navigateTo:fail can not navigateTo a tabbar page"}

{errMsg: "navigateTo:fail:can not navigate to a tab bar page"}

短短一行字,不同点居然有三处。。。我也是崩溃了,既然知道问题,那就好办了。无非就是判断 tabbar和tab bar了呗。只是,这种出错信息会不一致,让我很意外。。。

vuex mutation和action的区别

 如题,其实官网已经给出过说明,就三句话:详见(项目结构 | Vuex (vuejs.org)

 
  1. 应用层级的状态应该集中到单个 store 对象中。
  2. 提交 mutation 是更改状态的唯一方法,并且这个过程是同步的。
  3. 异步逻辑都应该封装到 action 里面。
简单明了。

Tags: vuex

uniapp component 中的onLoad/onShow 不被触发

 在使用UNIAPP进行开发的时候,component是经常要用到的,但在使用过程中会发现,经常用的onLoad/onShow无法被触发。而props在传进去时,data获取变量调用props时,也有延迟。

 
这时候的处理方法是参考uniapp的页面生命周期,可以看到,他本身也支持vue的各种常用方法,尝试用mounted,发现被触发了。
 
备注:created / destoryed 都能够被正常触发(这时候就不要迷信uniapp的一些用法了。)
 
至此问题解决。
Records:29812345678910»