• Vue学习笔记入门篇——安装及常用指令介绍


    本文为转载,原文:Vue学习笔记入门篇——安装及常用指令介绍

    介绍

    Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的。相比于Angular.js,Vue.js提供了更加简洁、更易于理解的API,使得我们能够快速地上手并使用Vue.js。

    安装

    CDN

    https://unpkg.com/vue, 会保持和 npm 发布的最新的版本一致。可以在 https://unpkg.com/vue/ 浏览 npm 包资源。代码中直接引用以下代码:

    <script src="https://unpkg.com/vue/dist/vue.js"></script>

    NPM

    在用 Vue.js 构建大型应用时推荐使用 NPM 安装, NPM 能很好地和诸如 Webpack 或 Browserify 模块打包器配合使用。 Vue.js 也提供配套工具来开发单文件组件。

    npm install vue

    Hellow World示例

    <div id="app">
        <p>{{message}}</p>
    </div>
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <script>
    var app = new Vue({
        el:'#app',
        data:{
            message:'Hello word'
        }
    })

    运行结果:

    其中app为Vue对象,el指定作用在html的元素,即例子中

     

    ,data是数据对象,数据绑定最常见的形式就是使用 “Mustache” 语法(双大括号)的文本插值。

    常用指令

    Vue.js的指令是以v-开头的,它们作用于HTML元素,指令提供了一些特殊的特性,将指令绑定在元素上时,指令会为绑定的目标元素添加一些特殊的行为,我们可以将指令看作特殊的HTML特性(attribute)。
    Vue.js提供了一些常用的内置指令,接下来我们将介绍以下几个内置指令:

    v-model

    在表单控件或者组件上创建双向绑定
    修饰符:

    .lazy - 取代 input 监听 change 事件
    .number - 输入字符串转为数字
    .trim - 输入首尾空格过滤

    示例代码:

    <div id="app-model">
        <p>{{message}}</p>
        <input type="text" v-model="message">
    </div>
    var app_model = new Vue({
        el:'#app-model',
        data:{
            message:''
        }
    })

    在输入框输入内容时,其上方同步显示输入内容:

    v-if

    v-if是条件渲染指令,它根据表达式的真假来删除和插入元素,它的基本语法如下:

    v-if="expression"

    expression是一个返回bool值的表达式,表达式可以是一个bool属性,也可以是一个返回bool的运算式,如以下代码:

    <div id="app-if">
        <p v-if="seen">你可以看见我</p>
    </div>
        var app_if = new Vue({
            el:'#app-if',
            data:{
                seen:true
            }
        })

    运行结果如下:

    如果你在控制台设置 app_if.seen=false 则”你可以看见我”字样就会消失不见

    v-show

    v-show也是条件渲染指令,和v-if指令不同的是,使用v-show指令的元素始终会被渲染到HTML,它只是简单地为元素设置CSS的style属性。例如:

    <div id="app-show">
        <p v-show="age > 25">Age:{{age}}</p>
    </div>
        var app_show = new Vue({
            el:'#app-show',
            data:{
                age:28
            }
        })

    运行结果如下:

    同样,如果在控制台修改app_show.age的值,若是age>25的结果为false的话,界面中的文本也会消失不见。

    v-else

    可以用v-else指令为v-if或v-show添加一个“else块”。v-else元素必须立即跟在v-if或v-show元素的后面——否则它不能被识别。
    示例代码:

    <div id="app-else">
        <p v-if="age > 18">{{name}}的年龄是{{age}}岁,已成年</p>
        <p v-else>{{name}}的年龄是{{age}}岁,未成年</p>
    </div>
        var app_else = new Vue({
            el:'#app-else',
            data:{
                name:'chain',
                age:17
            }
        })

    运行结果如下:

    v-for

    v-for指令基于一个数组渲染一个列表,它和JavaScript的遍历语法相似:

    v-for="item in items"

    items是一个数组,item是当前被遍历的数组元素。例如:

    <div id="app-for">
        <ul v-for="item in items">
            <li>{{item}}</li>
        </ul>
    </div>
    var app_for = new Vue({
        el:'#app-for',
        data:{
            items:[
                'Vue',
                'Angular',
                'React'
            ]
        }
    })

    运行结果:

    v-bind

    v-bind指令可以在其名称后面带一个参数,中间放一个冒号隔开,这个参数通常是HTML元素的特性(attribute),例如:v-bind:class

    v-bind:argument="expression"

    修饰符:

    .prop - 被用于绑定 DOM 属性。(what’s the difference?)
    .camel - (2.1.0+) 将 kebab-case 特性名转换为 camelCase. (从 2.1.0 开始支持)
    .sync (2.3.0+) 语法糖,会扩展成一个更新父组件绑定值的 v-on 侦听器。
    示例代码:

    <div id="app-bind">
        <img width="50px" v-bind:src="img_url">
    </div>
    var app_bind = new Vue({
        el:'#app-bind',
        data:{
            img_url:'https://cn.vuejs.org/images/logo.png'
        }
    })

    运行结果:

    v-on

    绑定事件监听器。事件类型由参数指定。表达式可以是一个方法的名字或一个内联语句,如果没有修饰符也可以省略。可缩写为@

    用在普通元素上时,只能监听 原生 DOM 事件。用在自定义元素组件上时,也可以监听子组件触发的自定义事件。

    在监听原生 DOM 事件时,方法以事件为唯一的参数。如果使用内联语句,语句可以访问一个 $event 属性: v-on:click=”handle(‘ok’, $event)”
    修饰符:

    .stop - 调用 event.stopPropagation()。
    .prevent - 调用 event.preventDefault()。
    .capture - 添加事件侦听器时使用 capture 模式。
    .self - 只当事件是从侦听器绑定的元素本身触发时才触发回调。
    .{keyCode | keyAlias} - 只当事件是从特定键触发时才触发回调。
    .native - 监听组件根元素的原生事件。
    .once - 只触发一次回调。
    .left - (2.2.0) 只当点击鼠标左键时触发。
    .right - (2.2.0) 只当点击鼠标右键时触发。
    .middle - (2.2.0) 只当点击鼠标中键时触发。
    .passive - (2.3.0) 以 { passive: true } 模式添加侦听器

    示例代码:

    <div id="app-on">
        <p>{{message}}</p>
        <button @click="setMessage">Set Message</button>
    </div>
    var app_on = new Vue({
        el:'#app-on',
        data:{
            message:''
        },
        methods:{
            setMessage:function () {
                this.message='hello world';
            }
        }
    })

    点击按钮后,结果如下:

    原创博文,转载请注明出处
    返回目录
    下一节:Vue学习笔记入门篇——数据及DOM

  • 相关阅读:
    Error:ServiceStack.Redis.RedisResponseException:“unknown command 'CLIENT'”
    ServiceStack.Model.IHasNamed.cs
    ServiceStack.Redis.IRedisSet.cs
    ServiceStack.Redis.IRedisList.cs
    samba服务日志文件-密码文件及启停
    LDAP错误代码221
    samba服务简介
    linux下CDROM挂载
    RedHat下GCC及G++的安装
    sys--system-sysdba-sysoper用户区别
  • 原文地址:https://www.cnblogs.com/ChainZhang/p/7130517.html
Copyright © 2020-2023  润新知