这几天一直在做项目,没有总结,这样很不好!
总结一下,这几天遇到的问题,还有各个知识点。
js中的加号
js中加号不仅代表相加还表示字符串拼接
当加号一边是字符串的时候,实际上两侧都转换成为了字符串。
"1"+1="11"
这就是javascript中的隐式类型转换的一种
隐式类型转换
JavaScript中的数据类型有null,undefined,string,number,Object,boolean。object是引用类型,其他五个是基本类型。
类型转换例子
基本类型
console.log(null==undefined)//true
console.log("3"==3);//true,将字符串"3"转换成数字,然后再进行比较。
console.log("1"==true);//false,分别将"1"和true转换成数字,然后进行比较。
引用类型
两个重要的方法
通常情况下我们认为,将一个对象转换为字符串要调用toString()方法,转换为数字要调用valueOf()方法,但是真正应用的时候并没有这么简单。
webview的传值跨页面的时候能不能不一直传?
mui框架实现页面传值
页面初始化时候,通过扩展参数传值
下面几个场景会执行初始化
- 通过mui.openWindow()打开新页面(若目标页面为已预加载成功的页面,则在openWindow方法中传递的extras参数无效);
- 通过mui.init()方法创建子页面;
- 通过mui.init()方法预加载页面;
- 通过mui.preload()方法预加载页面
示例,假设我们有如下需求:
在首页中打开关于页面时,传递当前产品名称及版本号,然后在关于页面中读取这两个参数并显示出来;
首页实现代码:
mui.openWindow({
url:'info.html',
id:'info.html',
extras:{
name:'mui',
version:'0.5.8'
}
});
关于页面实现代码:
var self = plus.webview.currentWebview();
var name = self.name;
var version = self.version;
fire传值
第一步:要有目标页面
var roadLinePage = plus.webview.getWebviewById('choose_car.html');
//取得父页面
var parentWebview = plus.webview.currentWebview().opener(); // 获取父窗口webview
第二步:要有自定义事件 其中getQcCity就是事件
mui.fire(roadLinePage,'getQcCity',{
qcCityName:cityName,
qcCityId:cityId
});
//通过mui.fire()方法可触发目标窗口的自定义事件
mui.fire(parentWebview, "finishSelect", {
responseObj: responseObj,
currentMaterial:currentMaterial,
reqDetailId:currentMaterial.id
});
第三部:要在目标页面监听事件getQcCity
window.addEventListener('getQcCity',function(event){
//获得事件参数
var id = event.detail.qcCityId;//获取传过来的值
document.getElementById("qcCity_").value=id;
console.log("取车城市"+id);
freshCarTable();//要执行的函数
});
window.addEventListener('finishSelect', function (e) { //获取参数值
var responseObj = e.detail.responseObj;//注意这里的书写
});
其他方法:
父页面在跳转的时候,链接带上参数
url:"sekffhdhh.html?"+eid
子页面获取参数
var href = location.href;
var eid = href.split("?")[1];
本地存储
localStorage.setItem(name,JSON.stringify(value))
var obj = localStorage.getItem(name);
vue中为data中的属性设置新的字段
Vue.set(idleList[i], 'hadNum', 0);
eqList.$set(eqList[i], 'hadNum', 0);
原因:受到es5的限制,vue.js检测不到对象属性的添加或者删除。因为vue.js在初始化实例的时候将属性转换成getter/setter,所以属性必须在data对象上才能让 vue.js转换它,才能让它是响应的。
解决方法:
对于vue实例,可以使用$set(key,value)实例方法
key也支持test.name的写法
this.$set("test00",2222)//test00:2222
this.$set('test01.name',1222);//test01:{sex:"boy",name:1222} ok
合作
1.与后台对接方面,应该谈好数据的格式,了解各个接口!
2.后台提供url是什么?我应该发送给他的参数是什么?
3.项目中注意点,连接同一个局域网(自己开热点)!改掉localhost部分!还有tool.js上做修改!可以在postman上先运行看效果。
代码规范
周二开会讲解代码规范事宜,很多也值得自己学习
Web前端代码规范