Vue.js内置指令

v-cloak

cloak掩盖

  • 一般与display:none进行绑定

v-once

  • 定义它的元素和组件只渲染一次
<span v-once>{{oncedata}}</span>
image.png

条件渲染指令

v­if, v­eles­if ,v­else

v-if基本用法

<div id="app">
        v-if接的是等号: 等号后的内容必须是布尔值
        <p v-if="6<3">{{apple}}</p>
        <p v-else-if="9>5">{{pineapple}}</p>
        <p v-else>{{banana}}</p>

    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                apple: 'apple',
                banana: 'banana',
                pineapple: 'pineapple'
            }
        })
    </script>

v-if的实例用法

用法: 必须跟着屁股走
v-if的弊端 :
Vue 在渲染元素时 ,出于效率考虑,会尽可能地复用已有的元素而非重新渲染, 因
此会出现乌龙
只会渲染变化的元素,也就是说,input元素被复用了

解决方法:加key,唯一,提供key值可以来决定是否复用该元素

 <div id="app">
        <div v-if="type==='name'">
            用户名: <input type="text" placeholder="请输入用户名" key='name'>
        </div>
        <div v-else>
            密码: <input type="text" placeholder="请输入密码" key='psd'>
        </div>
        <button v-on:click="toggleType"> 切换</button>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js">
    </script>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                type: 'name'
            },
            methods: {
                toggleType: function () {
                    //三目运算符
                    this.type = (this.type === 'name' ? 'password' : 'name')
                }
            }
        })
    </script>

v­if和v­show的比较

v­if:
实时渲染:页面显示就渲染,不显示。我就给你移除
v­show:
v­show的元素永远存在也页面中,只是改变了css的display的属性

v-for

用法: 当需要将一个数组遍历或枚举一个对象属性的时候循环显示时,就会用到 列表
渲染指令 v­for。
两种使用场景:
遍历多个对象
遍历一个对象的多个属性

 var app = new Vue({
            el: '#app',
            data: {
                //每个对象对应一个li,数组
                vueMethods: [{
                        name: '多思考'
                    },
                    {
                        name: '多练习'
                    },
                    {
                        name: '多上课'
                    }
                ],
                nvshen: {
                    girl1: '高圆圆',
                    girl2: '杨幂',
                    girl3: '张柏芝'
                }
            }
        })
<div id="app">
        v-for的用法: v-for一定是写在要遍历的元素上<br>
        遍历多个对象一定是数组

        1.遍历多个对象: <br>
        学好vueJs的方法是
        <ul>
            <li v-for="vueMth in vueMethods">{{vueMth.name}}</li>
        </ul>
        <hr>
        带索引的写法: 括号的第一个变量,代表item,第二个代表index
        <ul>
            <li v-for="(vueMth,index) in vueMethods">{{index}}-----{{vueMth.name}}</li>
        </ul>
        <hr>

        2.遍历一个对象的多个属性
        <span v-for='value in nvshen'>{{value}}</span>
        <hr>

        拿到value,key,index的写法 v-k-i (外开)
        <div v-for='(value,key,index) in nvshen'>第一个{{index}}女生:--键是{{key}}---值是{{value}}</div>
    </div>

数组的更新过滤

改变数组的一系列方法:
• push() 在末尾添加元素
• pop() 将数组的最后一个元素移除
• shift() 删除数组的第一个元素
• unshift():在数组的第一个元素位置添加一个元素
• splice() :可以添加或者删除函数—返回删除的元素
三个参数:

  • 第一个参数 表示开始操作的位置
  • 第二个参数表示:要操作的长度
  • 第三个为可选参数:
    • sort():排序
    • reverse()
<div id="app">
        <div v-for='study in arr'>{{study}}</div>
        <button @click='sortArr'>点我排序</button>
        <button @click='reserveArr'>点我进行数组的翻转</button>
        <hr>
        <button @click='changeOne'>改变数组的指定项</button>
        <button @click='changArrLength'>改变数组的长度</button>
        {{mathOO}}

    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                arr: ['book', 'pen', 'pencil']
            },
            computed: {
                mathOO: function () {
                    //参数代表要过滤的每一项
                    return this.arr.filter(function (book) {
                        return book.match(/oo/)
                    })
                }
            },
            methods: {
                sortArr: function () {
                    this.arr.sort(function (a, b) {
                        return a.length - b.length;
                    })
                },
                reserveArr: function () {
                    this.arr.reverse()
                },
                //改变数组的指定项
                changeOne: function () {
                    this.arr[0] = 'car'
                },
                //改变数组的长度
                changArrLength: function () {
                    this.arr.length = 1
                }
            }
        })
        //改变vue的第一项
        Vue.set(app.arr, 1, "car")
    </script>

点击传输的是event对象,如果是字符串则点击的传的是参数

方法和事件

<div id="app">
        点击次数: {{count}}
        <button @click='handle()'>点我每次加一</button>
        <button @click='handle(8)'>点我每次加8</button>

    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                count: 0
            },
            methods: {
                handle: function (count) {
                    // console.log(count)
                    count = count || 1;
                    this.count += count;
                }
            }
        })
    </script>
image.png

如果方法中带有参数,但是你没有加括号,默认传原生事件对象event

vue.js 的修饰符号

在vue中传入event对象用 $event
向上冒泡
stop:阻止单击事件向上冒泡
prevent::提交事件并且不重载页面
self:只是作用在元素本身而非子元素的时候调用
once: 只执行一次的方法

可以监听键盘事件:
<input @keyup.13 ="submitMe"> ——­指定的keyCode
vueJS为我们提供了:
.enter
.tab
.delete

<div id="app">
        <!-- 向上冒泡 -->
        stop用法: <br>
        <div @click.self='divclick' style="height: 100px;width: 100px;background-color: red;">
            <button @click='btnclick'>点击</button>
        </div>
        <hr>
        prevent的用法:
        每次提交表单都会重载页面
        <form action="" @submit.prevent='hangle'>
            <button type='submit'>提交表单</button>
        </form>
        <hr>
        once: <br>
        <button @click='onceMethod'>执行无限次</button>
        <button @click.once='onceMethod'>只执行一次</button>
        <hr>
        监听键盘事件:
        <br>
        <input @keyup.13='submitMe'> ---keyCode
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                count: 0
            },
            methods: {
                divclick: function () {
                    alert('div被点击了')
                },
                btnclick: function () {
                    alert('button被点击了')

                },
                hangle: function () {
                    alert('我不重载,页面也不刷新了')
                },
                onceMethod: function () {
                    alert('执行一次method')
                },
                submitMe: function () {
                    alert('您按下了enter键')
                }
            }
        })
    </script>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,137评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,824评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,465评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,131评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,140评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,895评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,535评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,435评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,952评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,081评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,210评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,896评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,552评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,089评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,198评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,531评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,209评论 2 357

推荐阅读更多精彩内容