1、在portal中点击城市按钮:加上去包含有城市的路径
2、然后在index.vue中根据$route.params.city来设置vuex中的store.state.city,然后其他人去取city就去到的是首页选择的,这里注意一下,
在main.js里面引入了store,并且在main.js中最底层vue对象中注入了store,
这样 store 的实例就可以注入所有的子组件,子组件可以通过this.$store来访问这个store实例。
const mutations = {
setCity(state, city) {
state.city = city
}
}
//其中的第一个元素state是默认注入的
要在其他组件中调用vuex中的这个方法的话,可以这样:self.$store.commit('setCity', city);
但是如果这么写的,用了模块化的话:
export default new Vuex.Store({
modules: {
config(模块名)
}
})
在vuex外面的组件中获取vuex中的数据的话,要这么做:this.$store.state.config(这个是模块名字).headerHeight;
3.购物车的单选按钮,选中商品功能,接口里面没有字段,是监听不到的,通过$set设置一个不存在的变量,放在data里面,
两种方法,1.全局注册 Vue.set(item,"checked",true);2.局部注册 this.$set(partdata,"checked",true);
如果一个变量不在data里面声明或者不在对象里面,用vue监控不到属性(一个对象里面的变量不存在,解决办法)
4.在elementUI中的checkbox中的选中状态靠v-model来控制,不靠:check = "true"控制
5.购物车小球的逻辑:a.小球先写死在购物车右上角那里 b.点击添加的时候小球立刻回到点击的地方
6. created(){
问题是为啥数组里面一个数据但是为啥打印不出来?
因为打印引用类型数据都不是实时数据,数组和对象都不是实时数据;所以有一个元素的数组;
但是实际上打印第一个元素的时候,DOM没有渲染,所以是undefined
console.log(document.getElementsByClassName('mapcon'));//打印出的有一个元素的数组
console.log(document.getElementsByClassName('mapcon')[0]);//打印出的是undefined
window.addEventListener('resize',()=>{
//window.screen.height;
// document.getElementsByClassName('mapcon')[0].style.height
});
}
//上面的是放在created里面的,但是如果放到mounted里面就好了
mounted(){
console.log(document.getElementsByClassName('mapcon'));
console.log(document.getElementsByClassName('mapcon')[0]);
window.addEventListener('resize',()=>{
});
}
7.var [first, second, third] = [1,2,3,4];
对象解构
可以把对象的每个属性 与 不同的变量进行绑定
被绑定的属性名 : 自定义变量
var { userName : name } = {userName : "小明"}
结果 : (name : 小明)
当属性名与变量名一致时,可以通过一种实用的句法简写
var { userName } = {userName : "小明"}
8.在vue中的DOM操作:document.querySelector("#demo");
擦,还用个 毛的 getElementsByClassName,不是用querySelector 么
9.获取图片的高度没拿到,document.getElementsByClassName('header')[0].innerHeight或者clientHeight还有试试offsetHeight
嘿嘿,综上所述,clientHeight与height的区别是如果有滚动条时应减去滚动条的17px不可用部分,offsetHeight与Height的区别是增加了boder的高度,
ScrollHeihgt与Height的区别是火狐下与offsetHeight一致,IE下如上所述.
2、然后在index.vue中根据$route.params.city来设置vuex中的store.state.city,然后其他人去取city就去到的是首页选择的,这里注意一下,
在main.js里面引入了store,并且在main.js中最底层vue对象中注入了store,
这样 store 的实例就可以注入所有的子组件,子组件可以通过this.$store来访问这个store实例。
const mutations = {
setCity(state, city) {
state.city = city
}
}
//其中的第一个元素state是默认注入的
要在其他组件中调用vuex中的这个方法的话,可以这样:self.$store.commit('setCity', city);
但是如果这么写的,用了模块化的话:
export default new Vuex.Store({
modules: {
config(模块名)
}
})
在vuex外面的组件中获取vuex中的数据的话,要这么做:this.$store.state.config(这个是模块名字).headerHeight;
3.购物车的单选按钮,选中商品功能,接口里面没有字段,是监听不到的,通过$set设置一个不存在的变量,放在data里面,
两种方法,1.全局注册 Vue.set(item,"checked",true);2.局部注册 this.$set(partdata,"checked",true);
如果一个变量不在data里面声明或者不在对象里面,用vue监控不到属性(一个对象里面的变量不存在,解决办法)
4.在elementUI中的checkbox中的选中状态靠v-model来控制,不靠:check = "true"控制
5.购物车小球的逻辑:a.小球先写死在购物车右上角那里 b.点击添加的时候小球立刻回到点击的地方
6. created(){
问题是为啥数组里面一个数据但是为啥打印不出来?
因为打印引用类型数据都不是实时数据,数组和对象都不是实时数据;所以有一个元素的数组;
但是实际上打印第一个元素的时候,DOM没有渲染,所以是undefined
console.log(document.getElementsByClassName('mapcon'));//打印出的有一个元素的数组
console.log(document.getElementsByClassName('mapcon')[0]);//打印出的是undefined
window.addEventListener('resize',()=>{
//window.screen.height;
// document.getElementsByClassName('mapcon')[0].style.height
});
}
//上面的是放在created里面的,但是如果放到mounted里面就好了
mounted(){
console.log(document.getElementsByClassName('mapcon'));
console.log(document.getElementsByClassName('mapcon')[0]);
window.addEventListener('resize',()=>{
});
}
7.var [first, second, third] = [1,2,3,4];
对象解构
可以把对象的每个属性 与 不同的变量进行绑定
被绑定的属性名 : 自定义变量
var { userName : name } = {userName : "小明"}
结果 : (name : 小明)
当属性名与变量名一致时,可以通过一种实用的句法简写
var { userName } = {userName : "小明"}
8.在vue中的DOM操作:document.querySelector("#demo");
擦,还用个 毛的 getElementsByClassName,不是用querySelector 么
9.获取图片的高度没拿到,document.getElementsByClassName('header')[0].innerHeight或者clientHeight还有试试offsetHeight
嘿嘿,综上所述,clientHeight与height的区别是如果有滚动条时应减去滚动条的17px不可用部分,offsetHeight与Height的区别是增加了boder的高度,
ScrollHeihgt与Height的区别是火狐下与offsetHeight一致,IE下如上所述.