vue注意事项 发表于 2018-11-16 vue注意事项 123456789101112131415161718192021222324252627282930313233343536373839404142434445生命周期方法1. beforeCreate 还没有创建data, methods, 以及watch等和el元素2. created 该方法中可以获取data methods watch了 但是el为空3. beforeMount 该方法可以有虚拟dombeforeMount -> mounted就是虚拟dom转为真实dom的过程 该过程才是真实的去渲染dom, 渲染是如何发现dom中有渲染的数据在data中没有就会报错, 如data中并没有ddd这个属性值。 但是dom中渲染{{ddd}}, 会在这个过程会报错。4. mounted 该方法中真实的dom已经渲染完毕了。可以获取dom元素了。5. beforeUpdate 更新dom之前。。。6. updated 更新dom之后。。。7. beforeDestory 销毁dom之前...8. destroyed 销毁dom之后...注意:生命周期的方法都是顺序执行的。如果再created或者mounted方法中有ajax请求操作。也不能阻塞生命周期方法的执行流程。v-if 会缓存值,直到v-if的值 变为true才会第一次渲染, 改变值会不断的从dom中进行重绘和移除该元素。v-show 不会缓存值,会直接在虚拟dom转换为真实dom的过程中被渲染。本质就是改变他的display为none和block。v-for 的渲染机制。v-for="item in items" 如果items为空或者item为空就会先缓存该元素,等待item和items有值后才会重新渲染。以及格式化时间等操作。可以用filter操作。也可以在computed里面做, 因为computed里面的属性会缓存下来,直到该属性依赖的值发生变化之后才会重新调取该属性的getter方法。而不是像在methods中定义格式化的方法。每次渲染时都会调用methods里面格式化的方法。watch方法里面可以用来监听某一属性。如$route。 '$route'(to, from) {//路由发生变化调用其他的操作}动态切换组件, 通过改变diff的值。diff的值为一个组件哦!<p :is="diff"></p>import Vue from 'vue';let a = {name: 'vueset', age: 12};// 注意这样赋值是不会更新dom的。// this.friends[0] = a;// 这样才有效果。Vue.set(this.friends, 0, a);vue和react本质差不多。react中有props传值和 state属性绑定dom, 路由: react-router-dom, 数据中心 redux, react-redux,vue中也有props传值和 data属性绑定dom, 路由: vue-router, 数据中心 vuex但是vue里面有双向数据绑定, 普通的js语法react里面只能是单向数据流,jsx语法,redux使得视图渲染和事件绑定分离。 (component负责视图渲染)和(container负责事件操作以及绑定对应component,connect(mapStateToProps, mapDisPatchToProps)(component))