vue的基本概念
挂载点:就是el属性对应html中的节点,实例只会处理挂载点下的内容。
模版:在挂载点内部的内容,也可以将模版内容卸载实例里面
如果有template属性会用模版替换外部html,只要有此属性app中的内容就没有意义,只能有一个根元素,不能是本文节点
插值表达式:<h1>{{message}}</h1> 使用插值表达式可能会出现闪屏问题
v-text表达式:<div v-text="message"></div>
v-html表达式:<div v-html="message"></div>
注意:v-text和v-html的区别:v-html会进行内容转义为html,而v-text则不会
v-once:挂载点的内容页面只渲染一次
基本指令
v-on(可以简写成@):绑定指令例如:<div v-on:click="onchange"/>
v-bind(可以简写为:):绑定数据。例如:<div v-bind:class="title" class="title"/> class和:class绑定不会发生冲突
v-model:双向绑定 例如:<input v-model="message" type="text"/> <div>{{message}}</div>
v-computed:计算属性 只有它依赖的属性的值发生变化的时候他才会重新计算
computed计算“属性”不是方法
-方法不会有缓存,computed会根据依赖(归vue管理的数据,可以响应式变化的)
的属性进行缓存
-两部分组成有get和set(不能只写set) 一般情况下 通过js复制影响其他人或者表单元素设置值的时候可以调用set方法
get()//返回什么结果,就会赋予给checkAll属性
set()//val是给checkAll 赋予值的时候传递过来的 watch观察者,只有值变化的时候才会触发
watch:{
a(newval,oldval){ //watch的属性名字要和观得人的名字一致
console.log(newval,oldval)
}
}
当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。
使用watch选项允许异步操作,设置中间状态 localStorage()将数据存储在本地
localStroage.setItem('data',JSON.stringify(this.todos));存储数据,名为data created(){
JSON.parse(localStorage.getItem('data'));
}
filters:过滤属性 用于筛选或规范数值 例如:{{message | filter1}} filters:{filter1:function(arg){arg++}}
v-watch:侦听属性 侦听某某以数据发生变化事发生的时间
v-if:/v-show:判断事件 值为true时模块显示,否则消失或隐藏
注:v-if和v-show的区别 v-if会将整个标签在dom树中移除,而v-show只是将display设为none;
v-for:遍历事件 例如:<li v-for="(item,index) of list" :key="index">{{item}}</li>
localStorage():将数据存储在本地
例如: localStorage.setItem('data',JSON.stringify(this.todos)); //存储数据在本地,名为data
created(){ this.todos = JSON.parse(localStorage.getItem('data')); } //读取本地数据
keep-alive:缓存组件 一旦缓存 不会重复加载,不会走crated和mounted等钩子函数
钩子函数
生命周期:beforCreate created 创建期
beforeMount mouted 挂载期
beforeUpdate updated 更新期
beforeDestroy destroyed 结束期
如果有template属性会用模版替换外部html,只要有此属性app中的内容就没有任何意义了,只能有一个根元素,不能是文本节点
this.$data vm上的数据
this.$watch监控
this.$el 当前el元素
this.$set 后加的属性实现响应式变化
this.$options
this.$refs.dom 获取元素 //如果不是通过v-for循环出来的只能获取一个
<p ref="myp">hello</p>
console.log(this.$refs.myp); //<p>hello</p>
如何数据变化后想要获取都没中的真实内容,需要等待页
面渲染完毕以后再获取,所有最好放在nextTict
例如: this.$nextTick(()=>{console.log(this.$refs.wrap)})
keep-alive缓存组件
一旦缓存 不会再走created mounted等钩子函数
子组件和父组件同时拥有mounted,需要等子组件挂载完成后再触发父组件。