vue 的基本语法
一 . Vue 的介绍
1 . 前端的三大框架 (可以去 GitHub 查看三个框架的 star 星)
vue : 作者尤雨溪, 渐进式的JavaScript 框架
react : Facebook公司, 里面的(高阶函数 es6) 非常多,对初学者不友好
angular : 谷歌公司,目前更新到6.0 ,学习 angular 需要会 typescript.
2 . vue的思想 :
数据驱动视图 , 设计模式 MVVM ( model view viewmodel )
3 . cdn 方式引用
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
4 . 下载到本地引用
<script src='./vue.js'></script>
5. 库和框架
上面的 vue.js 文件是一个库,小而精;
框架是功能比较齐全的, 像 Django ,大而全,功能比较多;
6. 实例化对象 
示例代码 :
<script src="./vue.js"></script>
<script>
new Vue({
el:"#app" // 绑定div的id值
// 这里data 是一个对象,在后面的学习中会发现 data 中一般是一个函数
data:{
// 数据属性
msg1:"黄瓜",
person:{
name:"alex"
},
msg2:"hello Vue",
isShow:"True"
},
methods:{
// 该组件中声明方法
},
watch:{
// 该组件中监听的数据属性
} }); </script>
注意 : 如果我们自己定义的属性和方法,则全部暴露在外面,如果是 vue 实例化对象自己的属性和方法,会在前边加上一个 " $ " 进行区分. 另外 , data 中有一个观察者 observer , 在观察着一些数据是否发生了改变,若改变,则将改变后的值立马渲染到 DOM 中对应的位置,控制台查看 data,效果图 :

二. vue 的模板语法
<div id="app">
<!--模板语法-->
<h2>{{ msg1 }}</h2>
<h3>{{ 'haha' }}</h3>
<h3>{{ 1+1 }}</h3>
<h4>{{ {'name':'alex'} }}</h4>
<h5>{{ person.name }}</h5>
<h2>{{ 1>2?'真的':'假的' }}</h2>
<p>{{ msg2.split('').reverse().join('') }}</p>
</div>
三 . vue的基本指令
使用指令系统后面一定是字符串,且字符串中的变量一定是数据属性中已有的变量
⑴ v-text 和 v-html ******
<div id="content">
{{ msg }}
<div v-text="msg"></div> <!-- v-text相当于innerText -->
<div v-html="msg"></div> <!-- v-html相当于innerHTML -->
</div>
<script src="./vue.js"></script>
<script>
// 实例化对象
new Vue({
el:"#content",
// data中是一个函数 函数中return一个对象,可以是空对象,但不能不return
data(){ // 函数的单体模式
return{
msg:"<h2>alex</h2>"
}
}
});
</script>
效果 :

⑵ 条件渲染 v-if 和 v-show
<div class="box1" v-show="isShow">hello</div>
<div class="box2" v-if="isShow">hello</div>
分析 : isShow 为真则显示div , 为假则不显示;
区别 : v-show 为假时相当于 display:none ; v-if 为假时相当于移除该 div ,但是有一个占位的注释 " <!-- --> ";
官网对 v-if 和 v-show 的区别解释 :
1)v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。
2)v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。
3)相比之下,v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。
4)一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。
v-if与v-else:可以使用 v-else 指令来表示 v-if 的“else 块”:
<div v-if="Math.random() > 0.5">
Now you see me
</div>
<div v-else>
Now you don't
</div>
v-else 元素必须紧跟在带 v-if 或者 v-else-if 的元素的后面,否则它将不会被识别。
⑶ v-bind 和 v-on
v-bind : 标签中所有的属性,如 img 标签的 src alt , a标签的 href id class 等,如下 :
<img v-bind:src="imgSrc" v-bind:alt="msg">
v-bind : class='{active:isActive}' 表示若 isActive (数据库中定义的变量) 为真,则对应div 增加 active 类.否则不增加 , 如下 :
<div class="box" v-bind:class='{active:isActive}'></div>
v-on : 监听 js中的所有事件,如 click, mouseover , mouseout 等,如下
<button v-on:click="clickHandler">切换颜色</button>
v-bind的简便写法是":",如:<div class="box" :class='{active:isActive}'></div>
v-on的简便写法是"@",如:<button @click="clickHandler">切换颜色</button>
⑷ 列表渲染 v-for (不仅可以遍历数组,还可以遍历对象), 如下 :
<div id="app">
<ul v-if="res.status === 'ok'">
<!-- v-for的优先级是最高的 diff算法 -->
<li v-for='(item,index) in res.users' :key="item.id">
<h3>{{ item.id }} -- {{ item.name }} -- {{ item.age }}</h3>
</li>
</ul>
<div v-for='(value,key) in person'>
{{ key }}-----{{ value }}
</div>
</div>
<script src="./vue.js"></script>
<script>
new Vue({
el:"#app",
data(){
return {
res: {
status: 'ok',
users: [
{id: 1, name: 'alex', age: 18},
{id: 2, name: 'wusir', age: 30},
{id: 3, name: 'yuan', age: 48}
]
},
person: {
name: 'tom'
}
}
},
methods:{
// 该组件中声明的方法
},
watch:{
// 该组件中监听的数据属性
}
});
</script>
总结 : 遍历数组时,一个参数是值, 两个参数是( 值,索引 ) : 遍历对象时,一个参数是值,两个参数是( 值,键).
注意 : 一定要去绑定一个标识( 有id就绑定id , 没有id就绑定index-索引 ), 则值改变会直接通过 key 查找,而不是在去遍历查找,提升效率.
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.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声明的全局变 ...
随机推荐
- MFC中 创建基于CFormView的文档视图程序
在MFC中可以创建多种类型的窗口程序,如对话框程序.单文档结构程序(非文档/视图结构).单文档(文档/视图结构)以及多文档视图结构程序等. 在编写一般的小工具时,我们的首选显然是对话框程序,不过基于对 ...
- nohup 输出重定向
今天在使用nohup命令的时候,每次后台执行生成的日志文件名都为nohup.out,现需要改变nohup命令生成的文件名. 在shell中,文件描述符通常是:STDIN标准输入,STDOUT标准输出, ...
- 【重点突破】——SVG技术动态随机绘制圆形
一.引言 在学习Canvas绘图技术时,做的是随机验证码的例子,在学习SVG绘图技术时,同样也有一个随机绘制的例子——动态随机绘制圆形.这个练习,即综合了多种SVG技术的知识点,又很具有艺术感,随机生 ...
- git-for-windows 安装无图标的问题
git-for-windows.ico 安装无图标的问题 一. 问题表现: 桌面图标与右建菜单图标,所是未知文件的图标, 二. 问题解决: 在shard/git/ copy 一个ico 文件(如git ...
- 【C语言天天练(十一)】深入理解指针
引言:在C语言中.指针的地位是不言而喻的,要想非常好的掌握C语言,掌握指针是必须的,这也是C语言不同于其它语言的地方. (一)指针的指针 样例: int i; int *pi;/*把pi初始化为指向变 ...
- Cocos2d-x中Vector<T>容器以及实例介绍
Vector<T> 是Cocos2d-x 3.x推出的列表容器,因此它所能容纳的是Ref及子类所创建的对象指针,其中的T是模板,表示能够放入到容器中的类型,在Cocos2d-x 3.x中T ...
- java将一个或者多个空格进行分割
public static void main(String[] args) { String s = "GET /index.html HTTP/1.1";//字符串s由“GET ...
- js:|| 和 && 运算符 特殊用法
引用:http://www.jb51.net/article/21339.htm 先总结一下: 几乎所有语言中||和&&都遵循“短路”原理,如&&中第一个表达式为假就不 ...
- 监听iOS检测屏幕旋转状态,不需开启屏幕旋转
-(void)rotation_icon:(float)n { UIButton *history_btn= [self.view viewWithTag:<#(NSInteger)#>] ...
- SVN客户端忽略无关文件
修改前请先备份文件 ~/.subversion/config. 1,打开Terminal,输入命令: $ open ~/.subversion/config 2,在打开的文件中寻找:`global ...