vue的基本语法
在学习vue之前,我们应了解一下什么是vue.js?
什么是Vue.js?
Vue.js是目前最后一个前端框架,React是最流行的一个前端框架(react除了开发网站,还可以开发手机App,Vue语法也是可以进行手机App,还需要借助 weex)
Vue.js是前端的主流框架之一,和angular、react.js一起,并成为前端三大主流框架
Vue.js是一套构建用户界面的框架,只关注视图层,它不仅易于上手,还便于第三方库即有项目整合(Vue有配置的第三方类库,可以整合起来做大型项目的开发)
前端的主要工作:主要负责MVC中的V这一层,主要工作就是和界面打交道,来制作页面效果
Node(后端)中的mvc与前端mvvm之间的区别:
mvc是后端的分层开发概念
mvvm是前端视图层的概念,主要关注于视图层分离,也就是说:mvvm把前端的视图层,分为三部分:model,view,vm viewmodel
Vue
vue返回的是一个对象
vue是一个mvvm的框架,(面试官常问的),angular是mvc的框架
Vue是vue的实例,这个实例存在计算机中,主要干俩大事:1、绑定事件;2、dom检测
Vuejs是封装的一个类,参数是options对象
Vue全家桶包括:vuex、vue-router、vue-resource还有构建工具 vue-cli
但是vue-resource 现在不使用了,用的是axios
最常用的属性是:
el:"" 指定vue所操作的dom范围,属性值是你获取的节点
data 就是vue的model,是存放数据的,属性值是一个对象或者是一个函数,在组件中的data是一个函数
methods 是vue中的事件方法,
vue的基本内容:
Vue的渲染:
指令式渲染:
v-html,v-text 采用{{}}语法==>插值运算
v-html:它可以加标签,它会解析成html
v-text:不能加标签,如果加了,它会当作字符串展示出来
插值表达式:
{{ data中的数据 }}
v-text与插值表达式的区别:
默认v-text没有闪烁的问题的,而插值表达式有闪烁问题
v-text 会覆盖元素中原本的内容,但是插值表达式只会替换自己的这个占位符,不会把整个元素的内容清空
v-html 与 v-text的区别:
v-html会解析html格式
v-text与插值表达式会把内容当做文本来解析
v-html 和 v-text都会覆盖元素中原有的内容
v-cloak
v-cloak 能够解决 插值表达式闪烁的问题

并在css中设置:
[v-cloak]{
display: none;
}
让所有设置 v-cloak 的元素隐藏,当加载完毕之后,元素身上的 v-cloak 就会消失
条件指令:v-if
v-if="a"
后面的值如果是true节点就显示,false就隐藏

v-show=""
改变css中的display
后面的值如果是true,节点就显示,false就隐藏
v-if与v-show的区别:
v-if是对节点的删除和添加,v-show是堆display属性值none和block的切换
v-if与v-show的区别及使用场景:
共同点:都是动态显示DOM元素
不同点:
v-if:
v-if 是动态的向DOM树内添加或删除DOM元素
v-if 切换一个局部编译/卸载的过程,切换时合适销毁和重建内部事件监听和子组件
v-if是懒惰性的,初始条件 = false,什么也不做,只有在条件第一次 = true时,才开始局部编译
v-show 是在任何条件下(首次条件是否为着真)都会被编译,然后缓存,而且DOM元素保留
v-if有更高的切换消耗
使用场景:
v-if 适合运营条件不大可能改变
v-show
v-show有更高的初始化渲染消耗
v-show只是简单的基于css切换
v-show是通过设置DOM元素的display实现控制显隐的
使用场景:
v-show 适合频繁切换
循环指令:v-for=""
* 值是一个数组 (item,index) in 数组名
* 值是一个对象 (value,key) in 对象名 value是属性值,key是属性
在v-for中key的使用注意事项:
v-for 循环的时候,key属性只能使用 number 或string,且是惟一的
key在使用的时候,必须使用 v-bind 属性绑定的形式,指定key的值
动态属性:v-bind:class="a"
可以简写 :class="a" v-bind可以省略
节点上绑定事件:
v-on:click="fn" 可简写:@click="fn"
事件方法写在methods中
v-on 监听事件
v-on:click="事件名"
缩写@click="事件名"
v-model 数据绑定
可以在表单中使用v-model实现数据双向绑定
text类型中的文本都是字符串,v-model中的值相同

复选框 v-model中的值是boolean

单选框 v-model中值是value


v-model实现的原理:
angular是mvc模式,ng-model是靠脏值检测
vue靠的是数据劫持和发布者订阅者模式
数据劫持:
Object.definePropery() 这个方法
* 生成对象的方法 字面量 var obj={}/new Object()
* Object.definePropery() 给一个对象定义新属性或修改一个对象的属性
* object.getOwnPropertyDescriptor() 返回关于一个对象某个属性的描述符,
第一个参数是目标对象,第二个参数是 对象的某个属性
var obj={age:12}
console.log(object.getOwnPropertyDescriptor(obj,'age'))
返回属性的意思:
configurable 配置选项,值为true代表这个属性可删除
enumerable 值为true 代表可枚举 可以使用 for in 遍历
value 这个属性的值
writeable 代表这个属性可以更改
如果有了set和get属性就不能有writeable 和 value属性
常见的修饰符:
.lazy v-model 在每次 input 事件触发后将输入框的值与数据进行同步
<input v-model.lazy="msg" >
.number 自动将用户的输入值转为数值类型
<input v-model.number="age" type="number">
.trim 自动过滤用户输入的首尾空白字符
<input v-model.trim="msg">
vue的事件修饰符
vue.js为 v-on 提供了事件修饰符
.stop 阻止maop
.prevent 阻止默认事件
.captur 添加事件监听器时使用事件捕获模式
.self 只当事件在该元素本身(比如不是子元素)触发是触发回调
.once 事件值触发一次
事件修饰符是可以串联的:

.stop和.self的区别:
.stop阻止事件冒泡
.self只会阻止自己身上冒泡行为的触发,并不会真正阻止 冒泡行为
vue的基本语法的更多相关文章
- Vue.js 数据绑定语法详解
Vue.js 数据绑定语法详解 一.总结 一句话总结:Vue.js 的模板是基于 DOM 实现的.这意味着所有的 Vue.js 模板都是可解析的有效的 HTML,且通过一些特殊的特性做了增强.Vue ...
- Vue 1-- ES6 快速入门、vue的基本语法、vue应用示例,vue基础语法
一.ES6快速入门 let和const let ES6新增了let命令,用于声明变量.其用法类似var,但是声明的变量只在let命令所在的代码块内有效. { let x = 10; var y = 2 ...
- Vue(1)- es6的语法、vue的基本语法、vue应用示例,vue基础语法
一.es6的语法 1.let与var的区别 ES6 新增了let命令,用来声明变量.它的用法类似于var(ES5),但是所声明的变量,只在let命令所在的代码块内有效.如下代码: { let a = ...
- vue 的基本语法
一 . Vue 的介绍 1 . 前端的三大框架 (可以去 GitHub 查看三个框架的 star 星) vue : 作者尤雨溪, 渐进式的JavaScript 框架 react : Faceb ...
- vue基础---模板语法
Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据.所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循规范的浏览器和 HTML 解 ...
- Vue.js 模板语法
本章节将详细介绍 Vue.js 模板语法,如果对 HTML +Css +JavaScript 有一定的了解,学习起来将信手拈来. Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 ...
- VUE:模板语法(小白自学)
VUE:模板语法 一:何为声明式 安装规定的语法,去实现一些效果(不需要管流程). 二:模板语法 <!DOCTYPE html> <html> <head> < ...
- vue 的基本语法和常用指令
什么是vue.js Vue.js是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助于Wee ...
- 01-路由跳转 安装less this.$router.replace(path) 解决vue/cli3.0语法报错问题
2==解决vue2.0里面控制台包的一些语法错误. https://www.jianshu.com/p/5e0a1541418b 在build==>webpack.base.conf.j下注释掉 ...
- day67:Vue:es6基本语法&vue.js基本使用&vue指令系统
目录 Vue前戏:es6的基本语法 1.es6中的let特点 1.1.局部作用域 1.2.不存在变量提升 1.3.不能重复声明 1.4.let声明的全局变量不从属于window对象,var声明的全局变 ...
随机推荐
- OpenFOAM 中的边界条件(一)【转载】
链接:http://xiaopingqiu.github.io/2016/04/02/Boundary-conditions-in-OpenFOAM1/ 本系列解读 OpenFOAM 中边界条件的实现 ...
- 解决oracle服务占用内存过高的问题
其实这是因为安装Oracle时,为了均衡电脑性能和数据库性能,默认内存大小为物理内存的1/8,自身内存比较大时,oracle所占的内存也会变大.而通常,我们自己的环境并不需要分配那么大的内存来支持Or ...
- pwn学习日记Day20 《程序员的自我修养》读书笔记
可执行文件的装载与进程 覆盖装入和页映射是两种典型的动态装载方法 进程建立的三步 1.创建一个独立的虚拟地址空间 2.读取可执行文件头,并且建立虚拟空间与可执行文件的映射关系. 3.将CPU的指令寄存 ...
- JS函数传递字符串参数(符号转义)
原文链接:https://blog.csdn.net/Myname_China/article/details/82907965 JS函数传递字符串参数,如果没有转义处理,在接收的时候无法正确的接收字 ...
- Flume-数据流监控 Ganglia
Ganglia 由 gmond.gmetad 和 gweb 三部分组成. gmond(Ganglia Monitoring Daemon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上.使用 ...
- MongoDB(mongodb-win32-x86_64-enterprise-windows-64-4.2.1-signed.msi)下载,启动和插入数据,查询
下载链接:https://pan.baidu.com/s/19lM5Q-_BaDbjaO1Pj0SbYg&shfl=sharepset 安装一路Next就行,安装完毕后,进入目录C:\Prog ...
- [转]用代码访问 Https
可以参考: https://blog.csdn.net/irokay/article/details/78801307 跳过证书验证方法 HttpClient简介HTTP 协议可能是现在 Intern ...
- faster-rcnn 测试自己数据集训练的模型
python demo_2019051601.pyTraceback (most recent call last): File "demo_2019051601.py", lin ...
- Linux-文件系统的简单操作
文件系统的简单操作 磁盘与目录的容量:df.du df [option] [目录或文件名] 参数: -a:列出所有的文件系统,包括系统特有的/proc等系统 -k:以KB的容量显示各文件系统 -m:以 ...
- RTM of ML.NET
Announcing ML.NET 1.0