vue 复习

1.vue简介
简化Dom操作
2.vue指令
(1)v-for="" 循环操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id="idsd">
       {{msg}}
       {{gsd}}
       {{mgh}}
       {{obj}}
      </div>
        <script src="js/vue.js"></script>
        <script>
        new Vue({
            el:"#idsd",
            data:{
                msg:'hello world',
                gsd:456,
                mgh:[12,12,12,1231,2],
                obj:{
                    name:'名字'
                      }
                  }
            })
          </script>
        </body>
    </html>

(2)v-model="" 双向数据绑定 用于表单元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<div class="qwe">
  <input type="text" v-model="msg">
   <p>{{msg}}</p>
   </div>
  <script src="js/vue.js"></script>
<script>
    new Vue({
        el:".qwe",
        data:{
            msg:"hello world"
        }
    })
</body>
</html>

(3)v-on:事件="函数名" 绑定事件 简写 @事件=""

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
  </head>
<body>
<div class="zxc">
   <button v-on:click="alt">点击</button>
   </div>
<script src="js/vue.js"></script>
<script>
    new Vue({
        el:".zxc",
        data:{
            msg:"hello world"
        },
        methods:{//methods  存放函数(方法)
            alt:function(){
                console.log(this.msg);
            }
        }
    })
</body>
</html>

(4)v-show="" 控制元素的显示或隐藏 display:none
显示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<div id="itany">
   <p v-show="!see">{{meg}}</p>
   </div>
<script src="js/vue.js"></script>
<script>
    new Vue({
        el:"#itany",
        data:{
            meg:"hellow",
            see:true
        }
    })
</script>
</body>
</html>

v-show 隐藏

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<style>
        p{
            width: 100px;
            height: 100px;
            background: red;
        }
    </style>
</head>
<body>
    <div id="itany">
       <button v-on:click="alt">点击隐藏</button>
       <p v-show="see"></p>
   </div>
    <script src="js/vue.js"></script>
<script>
    new Vue({
        el:"#itany",
        data:{
            see:true
        },
        methods:{
            alt:function(){
                if(this.see==true){
                   this.see=false;
              }else{
                   this.see=true;
              }
            }
        }
    })
</script>
</body>
</html>

(5)v-if="" 控制元素的显示或隐藏 visibility:hidden;
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">0000000000000000</p>
   <p v-else-if="num==1">111111111111</p>
   <p v-else-if="num==2">2222222222222</p>
   <p v-else-if="num==3">333333333333</p>
   <p v-else-if="num==4">444444444444</p>
   <p v-else='num==5'>55555555555555555</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)
       }
   })
</body>
</html>

(6)v-bind:属性='值' 绑定属性 简写 :属性='值'

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>DocumentDocument</title>
</head>
<body>
  <div id='itany'>
        <!--      <a href=""></a>-->
  <img v-bind:src="url" alt="">
  </div>
   <script src='js/vue.js'></script> 
   <script>
   new Vue({
       el:'#itany',
       data:{
           url:'img/1.jpg'
       }
   })
</script>
</body>
</html>

(7)v-text 不可以解析标签
v-html 可以解析标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <div id='app'>
       <input type="text" v-model='msg'>
       <p v-html='msg'>{{msg}}</p>
       <h3 v-text='msg'>{{msg}}</h3>
   
       <a href="#" v-once>{{msg}}</a> <br>
       <a href="#" v-pre>{{msg}}</a>
   
   </div>
    <script src='js/vue.js'></script>
<script>
   new Vue({
       el:'#app',
       data:{
           msg:'今天周六,照常上课'
       }
   })

</script>
</body>
</html>

(8)v-once 只绑定一次
v-pre 原样输出
(10)v-cloak

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        [v-cloak]{
            display:none;
        }
    </style>
</head>
<body>
   <div id='app'>
       <h1 v-cloak>{{msg}}</h1>
   </div>
    <script src='js/vue.js'></script>
    <script>
       new Vue({
           el:'#app',
           data:{
               msg:'hellovue'
           },
           beforeMount:function(){
              alert(1111) 
       }
   })

</script>
</body>
</html>

3.vue过滤器
全局:

   Vue.filter('过滤器的名字',function(data){
        return
})

局部:

filters:{
        过滤器的名字:function(data){
             return    
        }
    }

4.vue计算属性
处理复杂逻辑操作

computed:{
        名字:function(){
            return // 逻辑操作
        }
    }

5.vue中的组件
作用:
1.扩张html元素
2.封装可重用的代码

  <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
        <div id='app'>
  
  <my-component></my-component>
  </div>
   <script src='js/vue.js'></script> 
   <script>
Vue.component('my-component',{
    template:`
           <div>
               <p>{{mess}}</p>
               <button @click='alt'>按钮</button>
           </div>
     `,
    data:function(){
        return{
            mess:'我是组件中的值'
        }
    },
    methods:{
        alt:function(){
            alert('bdsjjf')
        }
    }
})   
   
   
new Vue({
    el:"#app",
    data:{
        msg:'jsdkvg'
    },
    methods:{
        
    }
})
</script>
</body>
</html>

6.组件之间的传值(难,重)
1.父传子 用属性 props:['属性']

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
  </head>
<body>
  <div id='app'>
      <my-father></my-father>
  </div>
     <script src='js/vue.js'></script> 
   <script>
   Vue.component('my-father',{
       template:`
            <div>
                 <my-tit v-bind:tit='title'></my-tit>
                 <my-fruit v-bind:fruList='list'></my-fruit>
            </div>
       `,
       data:function(){
           return{
               list:['apple','pear','banana'],
               title:'水果列表'
           }
       }
   })
   
   Vue.component('my-tit',{
       props:['tit'],
       template:`
             <h2>{{tit}}</h2>
           `
   })
   
   
   Vue.component('my-fruit',{
       props:['fruList'],
       template:`
            <ul>
                <li v-for="value in fruList">{{value}}</li>
            </ul>
         `
   })
   
   
   new Vue({
       el:'#app'
   })

</script>
</body>
</html>

2.子传父 用事件传 $emit

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <div id="app">
       <my-father></my-father>
   </div>
    <script src="js/vue.js"></script>
    <script>
        Vue.component("my-father",{
            template:`
                <div>
                    <my-child @send="reg"></my-child>
                    <a href="#">{{mess}}</a>
                </div>
            `,
        data:function(){
            return{
                mess:''
            }
        },
        methods:{
            reg:function(txt){
                this.mess=txt
            }
        }
    })
    Vue.component("my-child",{
        template:`
            <button @click="alt">按钮</button>
        `,
        data:function(){
            return{
                msg:"我是自组建中的元素,要传到福组建中"
            }
        },
        methods:{
            alt:function(){
//                    this.$emit('事件',参数)
                this.$emit('send',this.msg)
            }
        }
    })
    new Vue({
        el:"#app"
    })
</script>
</body>
</html>

3.非父子 借助中间量

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <div id="app">
       <child></child>
       <brother></brother>
      </div>
    <script src="js/vue.js"></script>
      <script>
    var bus=new Vue();
    Vue.component('child',{
        template:`
            <div>
                <h2>我是child组件中的数据</h2>
                <button @click="fasong">发送数据</button>
            </div>
        `,
        data:function(){
            return{
                mes:'我是child组件中的数据,传到brother'
            }
        },
        methods:{
            fasong:function(){
                bus.$emit('send',this.mes)
            }
        }
    })
    Vue.component('brother',{
        template:`
            <div>
                <h2>我是brother组件中的数据</h2>
                <a href="#">{{res}}</a>
            </div>
        `,
        data:function(){
            return{
                res:''
            }
        },
        mounted:function(){
            bus.$on('send',mes=>{
                this.res=mes
            })
        }
    })
    new Vue({
        el:"#app"
    })
</script>
</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,874评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,102评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,676评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,911评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,937评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,935评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,860评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,660评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,113评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,363评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,506评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,238评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,861评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,486评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,674评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,513评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,426评论 2 352

推荐阅读更多精彩内容

  • vue概述 在官方文档中,有一句话对Vue的定位说的很明确:Vue.js 的核心是一个允许采用简洁的模板语法来声明...
    li4065阅读 7,206评论 0 25
  • 1.安装 可以简单地在页面引入Vue.js作为独立版本,Vue即被注册为全局变量,可以在页面使用了。 如果希望搭建...
    Awey阅读 11,012评论 4 129
  • 什么是vuejs Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上...
    XKolento阅读 515评论 0 7
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,048评论 0 29
  • 1.vue 简介简化DOM操作2.vue 指令1).v-for="" 循环操作 2).v-model="" ...
    只留一人爱_1d04阅读 116评论 0 0