美文网首页
VUE的JS指令

VUE的JS指令

作者: 蠢淡淡不蠢 | 来源:发表于2018-06-25 22:43 被阅读0次

表达式

在HTML中直接嵌入JavaScript代码,需要使用表达式

{{ }}

{{ 10 + 20 }}
{{ Math.random() > 0.5 }}
{{ 'hello vue'.toUpperCase() }}
{{ 0 > 1 ? 'true' : 'false' }}

和AngularJS中使用规则一致

注意:放置的代码,一定要具有返回值

常用指令

v-text

绑定内容值

<h2>{{ a }}</h2>
<h2 v-text="a"></h2>

和AngularJS中ng-bind功能一致

v-model

双向绑定

<input type="text" v-model="username">
<h2>{{ username }}</h2>

和AngularJS中ng-model功能一致

v-model是语法糖,不使用v-model也可实现(v-bind / v-on)

注意:使用变量username的时候,一定需要在控制器中进行过定义

v-for

渲染列表

关键字使用ofin都可以

// 首先在数据中声明
let vm = new Vue({
    el: '#app',
    data: {
        people: [
            { name: 'xiaoming', age: 19 },
            { name: 'xiaohong', age: 20 },
            { name: 'xiaoli', age: 12 }
        ]
    }
});
<!-- 在HTML中的使用 -->
<ul>
    <li v-for="person in people">{{ person.name + ' ' + person.age }}</li>
</ul>
<ul>
    <li v-for="person of people">{{ person.name + ' ' + person.age }}</li>
</ul>
<ul>
    <li v-for="(person, index) in people">{{ index + ' ' + person.name + ' ' + person.age }}</li>
</ul>
<ul>
    <li v-for="(person, index) of people">{{ index + ' ' + person.name + ' ' + person.age }}</li>
</ul>

v-on

事件绑定

和AngularJS不同,在Vue中,绑定任何事件都使用v-on这一个指令

// 在method中声明方法
let vm = new Vue({
    el: '#app',
    methods: {
        show() {
            console.log('show');
        }
    }
});
<!-- 在HTML中的调用 -->
<button type="button" v-on:click="show()">Show</button>

简写形式,使用@代替了v-on指令

<button type="button" @click="show()">Show</button>
<h2 @mouseover="show()">mouseover</h2>

修饰符

执行事件的同时,另外去执行其它的任务

  • stop:调用event.stopPropagation()
  • prevent:调用event.preventDefault()
  • enter:调用指定按键上触发的回调
<input type="text" @keyup.enter="show()">
<input type="text" @keyup.13="show()">
<a href="http://blog.lidaze.com" @click.prevent="show()">李大泽</a>
<div @click.stop="show()">阻止事件冒泡</div>

传递参数

<h2 @click="show($event)">$event参数</h2>
methods: {
    show(e) { // e代表传递进来的参数
        console.log(e);
    }
}

v-bind

绑定属性

<img v-bind:src="imgUrl">
<a v-bind:href="blogUrl">{{ blogName }}</a>
<div v-bind:class="{ 'active': flag }">v-bind:class</div>
<div v-bind:style="{ fontSize: '50px' }">v-bind:style</div>
<div v-bind="{ id: 'div1', title: 'i\'m div' }">v-bind</div>

简写形式,使用:来代替v-bind指令

<img :src="imgUrl">
<a :href="blogUrl">{{ blogName }}</a>
<div :class="{ 'active': flag }">v-bind:class</div>
<div :style="{ fontSize: '50px' }">v-bind:style</div>

v-if v-else-if v-else

是否渲染

<div v-if="type === 'A'">A</div>
<div v-else-if="type === 'B'">B</div>
<div v-else-if="type === 'C'">C</div>
<div v-else>Not A/B/C</div>

v-show

显示隐藏标签

<h2 v-show="flag">v-show</h2>

v-cloak

这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕。

<div id="app" v-cloak></div>

v-once

只渲染元素和组件一次。随后的重新渲染,元素/组件及其所有的子节点将被视为静态内容并跳过。这可以用于优化更新性能。

<h2 @click="change()" v-once>{{ msg }}</h2>
change () {
    this.msg += 'ggggggggg';
    console.log(this.msg);
}

相关文章

  • 《Vue.js 实战》基础篇(上)

    本章内容:认识 Vue.js、数据绑定、计算属性、内置指令 一、初始 Vue.js 1.1 Vue.js 是什么 ...

  • 《Vue.js实战》学习笔记 -时间转换指令

    Vue.js实战 时间转换指令

  • v-on指令

    Vue.js 基础学习 v-on 指令

  • Vuejs 自学笔记

    Vue.js Vue 指令 1. v-text v-text指令的作用是:设置标签的内容(textContent)...

  • 2018-09-11

    1,下载安装vue.js下载git安装在需要下载vue.js的地方打开输入指令ump install vue下载成...

  • vue(9) - 收藏集 - 掘金

    Vue.js 自定义指令的用法与实例 - 前端 - 掘金市面上大多数关于Vue.js自定义指令的文章都在讲语法,很...

  • vue的基础教程转载

    Vue v-if指令 Vue.js的指令是以v-开头的,它们作用于HTML元素,指令提供了一些特殊的特性,将...

  • Vue 学习 - 基础语法

    Vue Vue.js 的指令是以 v- 开头的,它们作用于 HTML 元素,指令提供了一些特殊的特性,将指令绑定在...

  • 2018-09-11

    Vue中的for循环 v-for 指令可以绑定数组的数据来渲染一个项目列表: 链接Vue.js 输入的Vue.js...

  • Vue.js自定义指令 day3(2019.5.20)

    vue.js 自定义指令 简介: 除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许...

网友评论

      本文标题:VUE的JS指令

      本文链接:https://www.haomeiwen.com/subject/ggmuyftx.html