1、基本理解

Vue其实是一个渐进式JavaScript框架,封装好了一些方法,不再需要操作通过操作DOM,在相同的目标下能够更快的编写代码。

声明式渲染→组件系统→客户端路由→集中式状态管理→项目构建

易用:熟悉HTML、CSS、JavaScript知识后,可快速上手Vue

灵活:在一个库和一套完整框架之间自如伸缩

高效:20kB运行大小,超快虚拟DOM

2、Vue基本使用

el:元素的挂载位置(值可以是CSS选择器或者DOM元素)

data:模型数据(值是一个对象

Vue代码------(经过Vue框架的编译过程)-------原生js代码

3. Vue模板语法

3.1 差值表达式

比如:<div>{{msg}}</div>

注意:插值表达式在浏览器频繁刷新的时候,会出现“闪动”问题(显示花括号和内容,然后迅速替换为对应的数据----这也是Vue的解析方式)

解决办法:

v-cloak指令的用法:

> 1、提供样式



> 2、在插值表达式所在的标签中添加v-cloak指令即可解决

<div v-cloak>{{msg}}</div>

背后的原理:先通过样式隐藏内容,然后在内存中进行值的替换,替换好之后再显示最终的结果

3.2 指令

v-cloak



v-text

v-html

v-pre



如何理解响应式(比如在VScode编辑器中修改数据,实际浏览器上面的显示也会跟着变化):

> html5中的响应式----(屏幕尺寸的变化导致样式的变化)

> 数据的响应式-------(数据的变化导致页面内容的变化

v-once

<div v-once>{{info}}</div>

只编译一次,显示内容之后不再具有响应式功能,即使在VScode编辑器中修改数据,实际浏览器上面的显示也不会再变化

应用场景:如果显示的信息后续不需要再修改,可以使用v-once,这样可以提高性能。

v-show

> 共同点:

v-if 和 v-show 都是通过判断绑定数据的 true\false 来控制元素的显示和隐藏。

> 不同点:

v-if 只有在判断为 true 的时候才会对数据进行渲染,false 的时候把包含的代码进行删除。

除非再次进行数据渲染,v-if 才会重新判断。可以说是用法比较倾向于对数据一次操作。

v-show 是无论判断是什么都会先对数据进行渲染,只是 false 的时候对节点进行 display:none 的操作。

所以再不重新渲染数据的情况下,改变数据的值可以使数据展示或隐藏。

> 用法推荐:

v-if 更适合于带有权限的操作,渲染时判断权限数据,有则展示该功能,没有则删除。

v-show 更适合于日常使用,可以减少数据的渲染,减少不必要的操作。

综上,v-if 有更高的切换消耗,而 v-show 有更高的初始渲染消耗。



因此,如果需要频繁切换 v-show 较好(已经加载,只是通过display:none/block 控制显示/隐藏而已),如果在运行时条件不大可能改变,更倾向功能权限性的话 v-if 较好。

v-model

1、修改页面会影响到数据

2、修改数据会影响到页面



v-on

直接绑定函数名称 <button v-on:click='say'>Hello</button>或者简写 <button @click='say'>Hello</button>



修改为:如果事件绑定函数调用,需要传递事件对象,那么必须作为最后一个参数传递,名称必须是$event;不需要可以不传

console.log(event.target.innerHTML)----> 得到 “ 点击2 ”

v-bind

>属性绑定:

v-bind指令用法 <a v-bind:href='url'>跳转</a>

缩写形式 <a :href='url'>跳转</a>

v-model的低层实现原理分析



>样式绑定



v-for



key的作用:帮助Vue区分不同的元素,从而提高性能

v-if

v-else-if

v-else



v-slot

较少使用

修饰符

事件修饰符

.stop 阻止冒泡 <a v-on:click.stop="handle">跳转</a>

.prevent 阻止默认行为 <a v-on:click.prevent="handle">跳转</a>

按键修饰符

.enter 回车键 <input v-on:keyup.enter='submit'>------------比如此处的 submit 函数直接congsole.log(this.uname)

.esc 退出键 <input v-on:keyup.delete='handle'>

自定义修饰符

全局config.keyCodes 对象

规则:自定义按键修饰符名字是自定义的,但是对应的值必须是按键对应event.keyCode值

Vue.config.keyCodes.f1 = 112

案例:

Tab选项卡

Vue基础(一)---- 模板语法的更多相关文章

  1. Vue实例与模板语法

    VUE基础使用方法 一.安装 1.NPM 在用 Vue 构建大型应用时推荐使用 NPM 安装[1].NPM 能很好地和诸如 webpack 或 Browserify 模块打包器配合使用.同时 Vue ...

  2. Vue基础项目模板

    https://github.com/wanglong/vue-element-admin.git 优化 Vue CLI 3 构建的前端项目模板(1)- 基础项目模板介绍 一站式开源运维平台,分享给大 ...

  3. Vue介绍以及模板语法-插值

    1.Vue的介绍 Vue是一套用于构建用户界面的渐进式框架. 注意:Vue是一个框架,相对于jq库来说,是由本质的区别的:https://cn.vuejs.org/ Vue不支持IE8及一下版本,因为 ...

  4. 前端框架VUE——数据绑定及模板语法

    一.数据绑定 Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统: <div id="app"> {{ msg }} </di ...

  5. Vue基础-在模板中使用过滤器

    Vue 测试版本:Vue.js v2.5.13 官网给了过滤器的两种使用方式: 1.你可以在一个组件的选项中定义本地的过滤器: 结合实例,我给两个代码: <div id="app&qu ...

  6. Vue API 3模板语法 ,指令

    条件# v-if# v-if 指令用于条件性地渲染一块内容.这块内容只会在指令的表达式返回 truthy 值的时候被渲染. v-show# v-show 指令也是用于根据条件展示一块内容.v-show ...

  7. vue学习笔记 模板语法(三)

    <div id="kk"> <div>直接输出文本:{{msg}}</div> <div>自定义过滤器输出文本:{{msg|capi ...

  8. Vue笔记之模板语法

    插值 比较常用的就是插值,插值就是{{ foobar }}用两个大括号包起来的一个变量,显示的时候会将双大括号标签替换为这个变量的值. 基本的用法就是: <p>{{ message }}& ...

  9. Vue详细介绍模板语法和过滤器的使用!

    表达式 {{ XXX }}使用过滤器 {{ XXX | yyy}}使用多个过滤器 {{ XXX | yyy | yyy1}}过滤器带参数 {{ XXX | yyy(123,"zhuiszhu ...

  10. VUE基础实用技巧

    Vue以前听说过,有了解过一点.当时还在热衷于原生JavaScript去写一些方法的封装,不是为啥,就感觉这样很帅,后面多多少少接触了一些JQuery的用法,到现在为止,JavaScript原生封装的 ...

随机推荐

  1. PHP sha1_file() 函数

    实例 计算文本文件 "test.txt" 的 SHA-1 散列: <?php高佣联盟 www.cgewang.com$filename = "test.txt&qu ...

  2. C/C++编程笔记:C++入门知识丨多态性和虚函数

    本篇要学习的内容和知识结构概览 多态性 编译时的多态性称为静态联编. 当调用重载函数时, 在编译期就确定下来调用哪个函数. 运行时的多态性称为动态联编. 在运行时才能确定调用哪个函数, 由虚函数来支持 ...

  3. luogu P3761 [TJOI2017]城市 树的直径 bfs

    LINK:城市 谢邀,学弟说的一道毒瘤题. 没有真正的省选题目毒瘤 或者说 写O(n)的做法确实毒瘤. 这里给一个花20min就写完的非常好写的暴力. 容易想到枚举哪条边删掉 删掉之后考虑在哪两个点上 ...

  4. java -jar .jar中没有主清单属性

    pom里加上 <build> <plugins> <plugin> <groupId>org.springframework.boot</grou ...

  5. vmware15虚拟机安装教程

    自己碰到的问题:本人win7 64位旗舰版系统.之前用VMware12pro版本的软件,在安装Ubuntu18.04之后,有时候开启Ubuntu虚拟机时有点问题,重启就可以了.但是不稳定,所以改用VM ...

  6. SQL语句:在两个数据库间复制表结构和数据数据库

    一.如果两个数据库在同一台服务器上 1.复制表结构和数据:SELECT * INTO DatabaseB.dbo.TableB FROM DatabaseA.dbo.TableA 2.仅仅复制表结构: ...

  7. QString字符串的查找与截取实例

    QString是Qt中封装的字符串类,相对于标准库里的string,使用方法有些不同,个人感觉使用qt习惯后,感觉QString更好用,下面的代码主要是针对QString的字符查找.截取做的测试: # ...

  8. 面经手册 · 第2篇《数据结构,HashCode为什么使用31作为乘数?》

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 在面经手册的前两篇介绍了<面试官都问我啥>和<认知自己的技术栈盲区 ...

  9. java目前常用的几种定时任务

    java目前常用的几种定时任务 JDK自带的Timer spring的Task Quartz elastic-job分布式定时任务 一.JDK自带的Timer Timer是jdk中提供的一个定时器工具 ...

  10. TCP学习指北

    限于博主水平有限不敢说指南,但应该能够避免刚学TCP的同学出现找不着北的情况. TCP与UDP的区别 区别: UDP是无连接的,而TCP是面向连接的,传数据前要先建立连接. UDP可以一对多,多对多通 ...