Vue.js简介及指令
1.Vue.js的特点
Vue.js是一个Javascript MVVM(Model-View-ViewModel)库,与传统Jquery的区别在于,Vue.js舍弃了繁杂的DOM操作,
如取DOM值$('#id1').val(),赋DOM值$('#id1').val('hello')
Vue.js DOM和Model通过ViewModel来实现关联,
ViewModel是Vue.js的核心,主要有两个事件DOM Listeners和Data Bindings
DOM Listeners:监听DOM值,变化时,更新Model对应值
Data Bindings:当Model对应值改变时,同步绑定到View
原理图如下:

2.Vue.js使用示例
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <!--view-->
    <span id="myview">{{ message }}</span>
</body>
<script src="js/vue.js"></script>
<script>
    // model
    var mymodel = {
			message: 'Hello World!'
		}
    //ViewModel
    new Vue({
        el: '#myview',
        data: mymodel
    })
</script>
</html>
运行结果:

代码分析:
mymodel:model数据层
v-model="message":view视图层,v-model定义了对应的model中的字段
new Vue({}):定义了view层元素id作用域内,对应的model
3.双向绑定示例
有Vue.js的原理,可知当View值改变时,对应的Model值也会变化;当Model值变化时, View值也会发生变化。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <!--view-->
    <input type="text" id="myview" v-model="message">
</body>
<script src="js/vue.js"></script>
<script>
    // model
    var mymodel = {
			message: 'Hello World!'
		}
    //ViewModel
    new Vue({
        el: '#myview',
        data: mymodel
    })
</script>
</html>

4.Vue.js常用指令
v-if:判断指令
v-show:显示隐藏指令
v-else:判断指令(必须紧跟v-if,v-show使用)
v-for:循环指令
v-bind:绑定class指令
v-on:绑定事件指令
5.Vue.js指令使用示例
1)v-if,v-else
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div id="my_info">
        <span v-if="score>=9">popular language</span>
        <span v-else>fewer language</span>
    </div>
</body>
<script src="js/vue.js"></script>
<script>
    // model
    var mymodel = {
			score: 8
		}
    //ViewModel
    new Vue({
        el: '#my_info',
        data: mymodel
    })
</script>
</html>
运行结果:

v-if="score>=9":v-if后接表达式
2)v-show,v-else
v-show表示display:block,display:none
3)v-for
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <table id="my_info">
        <tr>
            <th>name</th>
            <th>score</th>
        </tr>
        <tr v-for="language in languages">
            <td>{{ language.name }}</td>
            <td>{{ language.score }}</td>
        </tr>
    </table>
</body>
<script src="js/vue.js"></script>
<script>
    //ViewModel
    new Vue({
        el: '#my_info',
        data: {
            languages:[{
                name: 'C',
                score: 9
            },{
                name: 'Python',
                score: 8.5
            },{
                name: 'Java',
                score: 7
            }]
        }
    })
</script>
</html>
运行结果:

4)v-bind,v-on
styles/index.css
.pagination li{
    display: inline;
}
.pagination li a{
    padding:6px 12px;
    background-color: #fff;
    border:1px solid #ddd;
    text-decoration: none;
    margin-left: -1px;
    color: #009a61;
}
.pagination .active{
    background-color: #009a61;
    color: #fff;
}
index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="styles/index.css" />
</head>
<body>
    <div id="my_info">
        <ul class="pagination">
            <li v-for="n in pagecount">
                <a href="javascript:void(0)" v-on:click="onpage(n+1)" v-bind:class="pagenum===n+1?'active':''">
                    {{ n+1 }}
                </a>
            </li>
        </ul>
    </div>
</body>
<script src="js/vue.js"></script>
<script>
    //ViewModel
    new Vue({
        el: '#my_info',
        data: {
            pagenum: 1,
            pagecount: 10
        },
        methods: {
            onpage: function (index) {
                this.pagenum = index;
            }
        }
    })
</script>
</html>
运行结果:

el:绑定的view
data:model属性
methods:model方法
v-bind:class="pagenum===n+1?'active':''"
model的pagenum属性对应的值和索引一直,设置样式class为active
v-on:click="onpage(n+1)"
view绑定方法,click时执行model的onpage方法
Vue.js简介及指令的更多相关文章
- Vue.js简介
		
Vue.js简介 Vue.js的作者为Evan You(尤雨溪),任职于Google Creative Lab,虽然是Vue是一个个人项目,但在发展前景上个人认为绝不输于Google的AngularJ ...
 - vue学习(一)、Vue.js简介
		
Vue.js 五天 汤小洋一. Vue.js简介1. Vue.js是什么Vue.js也称为Vue,读音/vju:/,类似view,错误读音v-u-e 版本:v1.0 v2.0 是一个构建用户界面的框架 ...
 - Vue.js之常用指令
		
vue常用指令 vue.js官方给自己的定义是数据模板引擎,并给出了一套渲染数据的指令.本文详细介绍vue.js的常用指令. 官网:点我 一.v-text.v-html v-text:用于绑定文本 v ...
 - 1.Vue.js的常用指令
		
Vue.js介绍 Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理解的API,使得 ...
 - Vue.js:自定义指令
		
ylbtech-Vue.js:自定义指令 1.返回顶部 1. Vue.js 自定义指令 除了默认设置的核心指令( v-model 和 v-show ), Vue 也允许注册自定义指令. 下面我们注册一 ...
 - vue.js 简介
		
Vue.js是什么 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层 ...
 - Vue.js——常用的指令
		
1.v-on:指令监听DOM事件,并在触发时运行一些javaScript代码. <div id='myView'> <img src="img/se.png" v ...
 - vue.js 四(指令和自定义指令)
		
官方的指令说明已经很简单了,这里再写一遍,也是自己加深一下印象 v-text 就是写入单纯的文本,可以忽略这个指令直接双花括号代替 <span v-text="msg"> ...
 - Vue.js的简介
		
vue.js简介 Vue.js读音 /vjuː/, 类似于 view Vue.js是前端三大新框架:Angular.js.React.js.Vue.js之一,Vue.js目前的使用和关注程度在三大 ...
 
随机推荐
- 基于springboot的多数据源配置
			
发布时间:2018-12-11 技术:springboot1.5.1 + maven3.0.1+ mybatis-plus-boot-starter2.3.1 + dynamic-datasour ...
 - Android 代码画角标 offcutView
			
效果如下: 代码: <com.andye.OffcutView android:layout_width="30dp" android:layout_h ...
 - js精确计算(js浮点数精度问题)
			
转自:http://talentluke.iteye.com/blog/1767138 大多数语言在处理浮点数的时候都会遇到精度问题,但是在JS里似乎特别严重,来看一个例子 alert(45.6*13 ...
 - C++11开发中的Atomic原子操作
			
C++11开发中的Atomic原子操作 Nicol的博客铭 原文 https://taozj.org/2016/09/C-11%E5%BC%80%E5%8F%91%E4%B8%AD%E7%9A%84 ...
 - IT公司管理发展经验
			
2012-11-14 内容存档在evernote,笔记名"IT公司管理发展经验"
 - Android程序员必备精品资源
			
平时写程序中不断收集到的一些比较常用的东西,分享给大家. 实用工具集锦 Android Lifecycle https://github.com/xxv/android-lifecycle TinyP ...
 - IDEA使用笔记(一)——使用前的基本设置
			
前言:记忆不好,有些东西需要的时候又需要找一找,那就不如让“纸和笔”来帮忙记录一下啦!到时候查找也方便,而且是自己的东西印象更加的深刻,说不定还能帮助到他人多好玩的事情! 软件的下载.安装就不记啦!自 ...
 - Oracle 12C -- 设置CDB启动后,PDBs自动启动
			
CDB重启后,PDBs默认是处于mounted状态 SQL> select name,open_mode from v$pdbs; NAME OPEN_MODE ---------------- ...
 - Unity3D对apk反编译、重编译、重签名
			
本文源链接:http://blog.csdn.net/qq393830887/article/details/56025923 工具 Java环境 Apktool(这玩意有些坑爹,不是官网最新的就好, ...
 - STM8的数据@near @tiny定义
			
总是记不住这个:stm8 stvd下 near等于51的xdata tiny等于51的idata http://www.waveshare.net/article/STM8-3-1-10.htm 如何 ...