全栈工程师开发实战之从入门到技术实战之02

全栈工程师开发实战之从入门到技术实战之02

第二章:vue指令和事件处理 回顾:vue:

vue ?

发展历史,产生背景

优势:

核心:数据决定视图,双向数据绑定

MVC:

三层架构:

全栈工程师开发实战之从入门到技术实战之02--vue指令_javascript MVVM: Model View ViewModel vue的实例对象

本章目标了解什么是 Vue.js 指令理解 Vue.js 指令的用途掌握 Vue.js 指令的书写规范能够使用 Vue.js 指令完成部分页面交互效果 一、vue指令 1.1 相关插件安装高亮代码括号的插件

全栈工程师开发实战之从入门到技术实战之02--vue指令_javascript_02vue的代码提示插件

全栈工程师开发实战之从入门到技术实战之02--vue指令_javascript_03[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6kqd13Tt-1654938578648)(assets/image-20220202161926801.png)]

标签重命名插件

全栈工程师开发实战之从入门到技术实战之02--vue指令_javascript_04 1.2 什么是 Vue指令指令 (Directives) 是带有 ​​v-​​ 前缀的特殊 attribute。指令 attribute 的值预期是单个 JavaScript 表达式。指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM。解析模板/标签(标签属性,标签体内容,绑定事件等)

例如:

代码语言:javascript复制//点击toggle按钮,会显示红色方块,再次点击,红色方块消失,这里就是通过控制属性的真假,通过指令作用到红色方块上来控制方块的显示隐藏

全栈工程师开发实战之从入门到技术实战之02--vue指令_vue.js_05 1.3 Vue.js 指令的书写规范代码语言:javascript复制//书写位置:任意 HTML 元素的开始标签内

现在你看到我了

//注意:一个开始标签内可写入多个指令,多个指令间使用空格分隔

全部 1.4 常用指令​​v-text​​

语法格式:​​v-text='表达式'​​作用相当于之前学习的DOM操作中的innerText属性,会直接覆盖元素中原本的文本内容,实际开发中使用不多代码语言:javascript复制

​​v-html​​

语法格式:​​v-html='表达式'​​作用相当于DOM操作中的innerHTML属性,可以识别字符串中的标签。全栈工程师开发实战之从入门到技术实战之02--vue指令_前端_06代码语言:javascript复制

**​​v-if ​​​​v-else-if​​​​v-else​​ **

作用等同于js代码中的 if else if elseif else 帮助我们按照需求去控制DOM元素的显示与隐藏。

语法格式:​​v-if='表达式'​​​​v-else-if='表达式'​​​​v-else='表达式'​​注意: v-if 和后续的v-else-if v-else都要连续使用,如果中间有间隔,效果是可以正常显示的,但是,控制台会报错。这个特性针对操作同级元素的时候来说。代码语言:javascript复制

  • 你好哈哈1
  • 你好哈哈2
  • 你好哈哈3

  • 你好嘿嘿1
  • 你好嘿嘿2
  • 你好嘿嘿3

​​v-show​​

控制元素是否显示,作用等同于css样式的display:none 或非none

语法格式:​​v-show='true/false'​​; true为显示,false为不显示代码语言:javascript复制

你好哈哈哈

代码语言:javascript复制v-if与v-show区别:

v-show指令的元素始终会被渲染到HTML

它只是简单地为元素设置CSS的style属性。当不满足条件的元素被设置style="display:none"样式

v-if指令满足条件是,会渲染到html中,不满足条件时,是不会渲染到html中的

v-if 指令有更高的切换消耗

v-if当条件成立的时候会将元素加上,不成立的时候,就会移除dom,并且内部的指令不会执行

v-show 指令有更高的初始渲染消耗

v-show只是简单的隐藏和显示

如果需要频繁切换使用 v‐show 较好,如果在运行时条件不大可能改变 使用v‐if 较好​​v-for​​ 循环遍历 #*

v-for的作用等同于js代码中的for循环,用于循环生成DOM结构,想循环哪个DOM结构,就在哪个DOM结构上添加v-for。

但凡使用到v-for的地方 必须添加第二个属性 :key=‘id’代码语言:javascript复制

  • {{item}}

  • {{key}}--{{val}}--{{i}}

  • {{item}}

​​v-on​​ 绑定事件和事件处理

vue的绑定事件的方式,只需要把原生事件名字的on去掉就可以了

例如: onclick === > @click/v-on:click onblur ===> @blur/v-on:blur普通用法代码语言:javascript复制为 HTML 元素绑定事件监听

v-on:事件名称 =‘函数名称()’

表达式可以是一个方法的名字或一个内联语句

简写语法:@事件名称 =‘函数名称()’

注意:函数定义在 methods 配置项中

v-on: 可以简写成 @

​​v-bind​​

作用:为元素的属性 动态的绑定值代码语言:javascript复制v-bind可以在其名称后面带一个参数,参数通常是HTML元素的属性(attribute),v-bind是动态绑定指令,默认情况下自带属性的值是固定的,为了能够动态的给这些属性添加/修改值可以使用v-bind指令

v-bind:属性名 = ‘表达式’

简写形式:v-bind可以省略,直接书写为 :属性名 = ‘表达式’

等价于 //绑定一个属性 v-bind:绑定class

代码语言:javascript复制//对象语法

我们可以传给 v-bind:class 一个对象,以动态地切换 class:

格式:

//isActive是boolean属性的参数,为true就给div添加类名active,为false就不添加

可以同时绑定多个类名,也可以和静态类名同时存在

//数组语法

我们可以把一个数组传给 v-bind:class,以应用一个 class 列表:

data: {

activeClass: 'active',

errorClass: 'text-danger'

}

//绑定多个属性

多个样式的绑定

v-bind:绑定内联样式

代码语言:javascript复制#对象语法

//v-bind:style 的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。CSS property 名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用引号括起来) 来命名:

data: {

activeColor: 'red',

fontSize: 30

}

//直接绑定到一个样式对象通常更好,这会让模板更清晰:

data: {

styleObject: {

color: 'red',

fontSize: '13px'

}

}

#数组语法

//v-bind:style 的数组语法可以将多个样式对象应用到同一个元素上:

​​v-model​​

你可以用​​​v-model​​​ 指令在表单​​​​​、​​