Vue-02-xiaoming

2018-09-14

什么是Vue的指令?Vue的指令有哪些?其实这些这些看着繁琐的指令,他总共分为两大块(内置指令和自定义指令)。今天我们就先说说内置指令。

QAQ:只有元素可以设置样式

①v-for

循环指令遍历,其意义在于检查集合中的元素并做处理)根据一组数据的选项列表进行渲染

     eg:<li v-for="(item,index) in arbj">{{item}}</li>

②v-model

数据双向绑定,用于表单元素;他的指令在<input>,<textarea>,<select>元素上创建数据双向绑定。它会根据控件类型自动选取正确的方法来更新元素。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。

  eg:<input type="text" v-model="message">
       <p>{{message}}</p>

③v-on

绑定事件监听器,事件类型由参数指定。表达式为:v-on:事件名="函数名"(事件名与Js不同,使用时没有on)。

   eg:<button v-on:click="funcname"></button>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <div id='exchange'>
       <p>{{value}}</p>
       <button v-on:click="exchanged">切换</button>
   </div>
    <script src='js/vue.js'></script>
    <script>
    
       new Vue({
           el:'#exchange',
           data:{
               value:'hello word',
//               txt:'hello vue',
               blur:true
           },
           methods:{
               exchanged:function(){
//                  this.value=this.txt 
                   if(this.blur==true){
                       this.value='hello vue',
                       this.blur=false    
                   }else{
                       this.value='hello word'
                       this.blur=true  
                   }
                   
               }
           }
       })
       
       //添加   push()
       //删除   splice(index,n)  //从哪开始  删除几个
    </script>
</body>
</html>

效果图:
exchang-01.png

exchange-02.png

QAQ:数组元素的添加与删除(添加:push(),删除:splice(index,n)=》》 (从哪个开始删,删几个))

④v-bind

动态的绑定一个或多个特性,或一个组件prop到表达式。在绑定class或style特性时,支持其他特性的值,如数组或对象
(在绑定 prop 时,prop 必须在子组件中声明。可以用修饰符指定不同的绑定类型。没有参数时,可以绑定到一个包含键值对的对象。注意此时 class 和 style 绑定不支持数组和对象)。表达式:v-bind:属性名="值",<script></script>中用methods(方式,方法):{function(){}}切记只有函数调用时函数方可执行。

   eg:<img v-bind:src="imageSrc">

QAQ:v-bind的属性名称驼峰化

⑤v-show

控制元素显示影藏不同的是带有 v-show 的元素始终会被渲染并保留在 DOM 中v-show 只是简单地切换元素的 CSS 属性 display

⑥v-if

隐藏属性=》》直接删了visibility:hidden;

QAQ:v-show,v-if的区别:

1 .v-if当值为 true时,显示div ,当值为false时,该元素消失,代码也会消失,相当于将代码删除了,当在为true时,页面会重新渲染div;
v-show 控制的隐藏出现,只是将css属性设为了display:none 或block;

⑦v-else,v-else-if

不需要表达式,前一兄弟必须有v-if或v-else-if
if(){}
if(条件){1}else{2}
else...if 多重条件语句

    if(){
        
    }else if(){
        
    }else if(){
        
    }else{
        
    }

v-if,v-else,v-else-if随机数效果:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <div id='itany'>
       <p v-if='num==0'>00000000000</p>
       <p v-else-if='num==1'>1111111111</p>
       <p v-else-if='num==2'>22222222</p>
       <p v-else='num==5'>555555555555</p>
      
   </div>
    <script src='js/vue.js'></script>
    <script>
    
       new Vue({
           el:'#itany',
           data:{
//               num:Math.floor(Math.random()*(max-min+1)+min)
               num:Math.floor(Math.random()*(5-0+1)+0)
           }
       })
    </script>
</body>
</html>
效果图:
num-01.png
num-02.png
num-03.png

v-for,v-model,v-on综合应用(添加列表):

<!DOCTYPE html>
<html lang="en">

    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>

    <body>
        <div id='itany'>
            <input type="text" v-model='txt'> <button v-on:click='add'>添加</button>
            <ul>
                <li v-for="(value,index) in arr">
                    {{value}}
                    <button v-on:click='delt(index)'>删除</button>
                </li>
            </ul>
        </div>
        <script src='js/vue.js'></script>
        <script>
            new Vue({
                el: '#itany',
                data: {
                    arr: ['吃饭', '睡觉', '打游戏'],
                    txt: ''
                },
                methods: {
                    add: function() {
                        this.arr.push(this.txt),
                            this.txt = ''
                    },
                    delt: function(ind) {
                        this.arr.splice(ind, 1)
                    }
                }
            })
        </script>
    </body>

</html>

效果图:

add-list.png

图片来回效果:

<!DOCTYPE html>
<html lang="en">

    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            ul {
                overflow: hidden;
            }
            
            li {
                margin-left: 50px;
                width: 60px;
                border: 1px solid #000;
                float: left;
                text-align: center;
                list-style: none;
            }
        </style>
    </head>

    <body>
        <div id='itany'>
            <img v-bind:src="url" alt="">
            <ul>
                <li v-for="(value,index) in list" v-on:click='chg(index)'>{{index+1}}</li>
            </ul>
        </div>
        <script src='js/vue.js'></script>
        <script>
            new Vue({
                el: '#itany',
                data: {
                    url: 'images/03.jpg',
                    //               num:[1,2,3,4,5]
                    list: ['images/03.jpg', 'images/06.jpg', 'images/07.jpg']
                },
                methods: {
                    chg: function(ind) {
                        this.url = this.list[ind]
                    }
                }
            })
        </script>
    </body>

</html>

效果图:

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

推荐阅读更多精彩内容

  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,044评论 0 29
  • 1.安装 可以简单地在页面引入Vue.js作为独立版本,Vue即被注册为全局变量,可以在页面使用了。 如果希望搭建...
    Awey阅读 10,989评论 4 129
  • 主要还是自己看的,所有内容来自官方文档。 介绍 Vue.js 是什么 Vue (读音 /vjuː/,类似于 vie...
    Leonzai阅读 3,324评论 0 25
  • Vue 实例 属性和方法 每个 Vue 实例都会代理其 data 对象里所有的属性:var data = { a:...
    云之外阅读 2,198评论 0 6
  • 第二天桌子上除了早餐还有一盒感冒药,“妈蛋你昨天真知道我在图书馆还不来!!!”喊声响彻走廊,透人心脾。旁边不认识的...
    撩食先生阅读 195评论 0 1