Vue2.0指令:
v-text指令:内容渲染指令,它会覆盖元素内部原有的内容。
{
{}}语法:插值表达式,专门用来解决v-text会覆盖默认文本内容的问题,v-text和插值表达式只能渲染纯文本内容,插值表达式不能用到属性节点。
v-html指令:可以把包含HTML标签的字符串渲染为页面的HTML元素。
v-bind指令:属性绑定指令,用于给元素的属性动态绑定数据。它可以简写为 : ,在使用v-bind的时候,如果绑定的内容需要拼接,则字符串的外面应该包裹一对单引号。例如:<div :title=" 'box
'+ index ">这是一个 div</div>, 其中box代表一个字符串,后面的index是一个变量,但是这个变量的值回到data里面去找。
v-on指令:事件绑定值令,用来为元素绑定事件,例如:v-on:click="add(n)",n是调用add()方法时传递的参数。在绑定事件的时候可以通过()来传递参数。v-on指令可以简写为@.在一个函数中,e.target就能拿到绑定这个函数的dom元素。Vue提供了一个内置对象$event,它就是原生dom的事件对象e。如果在方法中要修改data中的数据就要用到this来访问。
v-model指令: 双向数据绑定指令,用来辅助开发者在不操作DOM的前提下,快速获取表单的数据。它和input,textarea,select等表单元素表单元素一起使用才有意义,并且使用v-model指令时里面不能有this,否则就不能实现双向数据绑定了。
v-if和v-show条件渲染指令:条件渲染指令用来辅助开发者按需控制DOM的显示与隐藏。v-show的原理是:动态为元素添加或移除display:none样式,来实现元索的显示和隐藏。如果要频繁的切换元索的显示状态,用v-show性能会更好。v-if的原理是:每次动态创建或移除元索,实现元索的显示和隐藏。如果刚进入页面的时候,某些元索默认不需要被展示,而且后期这个元素很可能也不需要被展示出来,此时v-if性能更好。在实际开发中,绝大多数情况,不用考虑性能问题,直接使用v-if就好了! ! !
v-else-if指令:顾名思义,充当v-if的"else-if 块" ,可以连续使用,注意: v-else-if 指令必须配合v-if指令一起使用,否则它将不会被识别!
v-for列表渲染指令:vue提供了v-for列表渲染指令,用来辅助开发者基于一个数组来循环渲染一个列表结构。v-for 指令需要使用item in items形式的特殊语法,其中:●items 是待循环的数组,●item 是被循环的每一项。要循环哪个dom元素就给哪个dom元素加v-for。官方建议:只要用到了v-for 指令,那么一定要绑定一个:key 属性,而且尽量把id作为key的值。官方对key的值类型,是有要求的:字符串或数字类型,key的值是千万不能重复的,否则会终端报错
事件修饰符(加在事件绑定后面的):
.prevent :阻止默认行为
.stop :阻止事件冒泡
v-model指令特有的修饰符:
.number 自动将用户的输入值转为数值类型<input v-model.number="age" />
.trim 自动过滤用户输入的首尾空白字符<input v-model.trim="msg" />
按键修饰符:
@keyup.esc="函数名"或者@keyup.enter="函数名"等
私有过滤器:
过滤器(Filters) 是vue为开发者提供的功能,常用于文本的格式化。它本质上就是函数,但是过滤器必须要有返回值。过滤器可以用在两个地方:插值表达式,和v-bind属性绑定。过滤器函数必须被定义到data节点平级的filters:{}节点之下。注意:过滤器函数形参中的val, 永远都是“管道符”前面的那个值。过滤器应该被添加在JavaScript表达式的尾部,由“管道符”进行调用,示例代码如下:
全局过滤器:
如果全局过滤器和私有过滤器名字一致, 此时按照就近原则",调用的是“私有过滤器” 。
监听器:
watch侦听器允许开发者监视数据的变化,从而针对数据的变化做特定的操作。监听器本质上是一个函数,定义在与data:{}平级的watch:{}节点下,要监听谁就把谁作为方法名。
语法格式如下:
函数格式的监听器无法在刚一进入页面就触发,如果侦听的是一个对象,如果对象中的属性发生了变化,不会触发侦听器。而对象格式的侦听器,可以通过immediate选项,让侦听器在刚一进入页面的时候就自动触发! 用handler(){}来指定监听器处理函数。
immediate默认值为false,改为true就会使监听器在刚进入页面的时候自动执行一次。
对象格式的监听器可以通过deep选项,让侦听器深度监听对象中每个属性的变化!
计算属性:
计算属性指的是通过一系列运算之后,最终得到一个属性值。这个动态计算出来的属性值可以被模板结构或methods方法使用。所有的计算属性,都要定义到computed 节点之下,计算属性在定义的时候,要定义成“方法格式”。动态属性在用的时候就当作一个普通的属性来用,示例代码如下:
axios的基本用法:先导入axios库文件。调用axios方法得到的返回值是Promise 对象。
axios在请求到数据之后,在真正的数据之外,套了一层壳。
{
config: {},
data: {真实的数据},
headers: {},
request: {},
status: xxx,
statusText: ''
} axios传递参数:get请求传参用params:{},post请求传参用data:{}
使用解构赋值,从axios 封装的大对象中,把data 属性解构出来
把解构出来的data 属性,使用冒号进行重命名,一般都重命名为 { data: res}
vue-cli的使用:
在终端下运行如下的命令,创建指定名称的项目:vue create 项目的名称
vue项目中src目录的构成:assets文件夹:存放项目中用到的静态资源文件,例如: css样式表、图片资源.components文件夹: 程序员封装的、可复用的组件,都要放到components 目录下。main.js是项目的入口文件。整个项目的运行,要先执行main.js。APP.vue是项目的根组件。
vue项目的运行流程:
在工程化的项目中,vue要做的事情很单纯:通过main.js把App.vue里面定义的UI解构渲染到index.html的指定区域中。
Vue实例的$mount() 方法,作用和el属性完全一样!
什么是组件化开发?
组件化开发指的是:根据封装的思想,把页面上可重用的UI结构封装为组件,从而方便项目的开发和维护。vue是一个支持组件化开发的前端框架。vue中规定:组件的后缀名是.vue。之前接触到的App.vue文件本质上就是一个vue的组件。每个.vue组件都由3部分构成,分别是:template ->组件的模板结构,script ->组件的JavaScript行为,style ->组件的样式。
在组件中, this就表示当前组件的实例对象。
<template></template>里面只能有一个根元素。
<style lang="less"></style>启用less语法。
组件之间的父子关系:
组件在被封装好之后,彼此之间是相互独立的,不存在父子关系。在使用组件的时候,根据彼此的嵌套关系,形成了父子关系、兄弟关系。
使用组件的三个步骤:
@代表src这层路径
通过components注册的是私有子组件,例如:在组件 A的components节点下,注册了组件F。
则组件F只能用在组件A中;不能被用在组件C中。
注册全局组件:一次注册到处使用