这是我参与8月更文挑战的第21天,活动详情查看:8月更文挑战
最近沉迷于 你是我的荣耀,下载了一年多不玩的游戏,沉迷于于途大神和晶晶女神的绝世容颜里,总是会忘记写文章ε=(´ο`*)))唉~
vue生命周期的理解
生命周期是指一个实例从开始创建到销毁的这个过程:
beforeCreate()在实例创建之间执行,数据未加载状态created()在实例创建、数据加载后,能初始化数据,dom渲染之前执行beforeMount()虚拟dom已创建完成,在数据渲染前最后一次更改数据mounted()页面、数据渲染完成,真实dom挂载完成beforeUpadate()重新渲染之前触发updated()数据已经更改完成,dom也重新render完成,更改数据会陷入死循环beforeDestory()和destoryed()前者是销毁前执行(实例仍然完全可用),后者则是销毁后执行
组件通信
父组件向子组件通信:
子组件通过 props 属性,绑定父组件数据,实现双方通信。
子组件向父组件通信:
将父组件的事件在子组件中通过 $emit 触发
非父子组件、兄弟组件之间的数据传递:
// 新建一个Vue实例作为中央事件总嫌
let event = new Vue();
// 监听事件
event.$on('eventName', (val) => {
//......do something
});
// 触发事件
event.$emit('eventName', 'this is a message.')
vue-router 使用params与query传参的区别
// 传递
this.$router.push({path: './xxx', params: {xx:xxx}})
this.$router.push({path: './xxx', query: {xx:xxx}})
// 接收
this.$route.params
this.$route.query
params是路由的一部分,必须要有。query是拼接在url后面的参数,使用params进行传参,不能用path,要用name,否则接收不到参数的,params不设置的时候,刷新页面或者返回参数会丢,query则不会有这个问题
Class 与 Style 如何动态绑定?
Class
1、对象方法 :class="{'orange': isRipe, 'green': isNotRipe}"
2、数组方法 :class="[class1, class2]"
3、行内 :style="{color: color, fontSize: fontSize+'px'}"
Stlye
1、对象方法 :style="{ color: activeColor, fontSize: fontSize + 'px' }"
2、数组方法 :style="[styleColor,styleSize]"
computed和 watch 的区别
computed: :计算属性,依赖其它属性值,并且 computed 的值有缓存,只有它依赖的属性值发生改变,下一次获取 computed 的值时才会重新计算 computed 的值;
watch: :更多的是观察的作用,类似于某些数据的监听回调 ,每当监听的数据变化时都会执行回调然后进行后续操作;
运用场景:
1、当我们需要进行数值计算,并且依赖于其它数据时,应该使用 computed,因为可以利用 computed 的缓存特性,避免每次获取值时,都要重新计算;
2、当我们需要在数据变化时执行异步或开销较大的操作时,应该使用watch,使用watch选项允许我们执行异步操作 ( 访问一个API),限制我们执行该操作的频率,并在我们得到最终结果前,设置中间状态。这些都是计算属性无法做到的。