Vue.js

Vue_1

  • Vue的特点
  • Vue的基本结构
  • 什么是指令
  • 熟悉以下指令
    • v-model
    • v-for
    • v-show
    • v-on
  • MVVM模型

            /
            <script>
                window.onload = function () {
                    var c = new Vue({
                        el:'#box',
                        data:{
                            message:'hello, Vue!',
                            arr:['apple','juice','banana'],
                            json:{
                                name:'lucy',age:23,place:'chongqing'
                            },
                            msg2: true
                        },
                        methods:{
                            clickShow:function () {
                                this.msg2===false ? this.msg2=true : this.msg2 = false;
                            },
                            clickAdd:function () {
                                this.arr.push(this.message);
                            }
                        }
                    })
                }
            </script>
            <body>
                <div id="box">
                    {{message}}
                    <br />
                    <input type="text" value="message" v-model='message' />
                    <br />
                    {{message}}
                    <br />
                    {{arr}}
                    <br />
                    {{arr[0]}}
                    <br />
                    {{json}}{{json.name}}
                    <ul>
                        <li v-for="(k,v,index) in json" :key="json.id" v-show="msg2">
                            {{k}}&nbsp;{{v}} {{index}}
                        </li>
                    </ul>
                    <button v-on:click="clickShow()">显示隐藏内容</button>
                    <button v-on:click="clickAdd()">添加一个内容</button>
               </div>
         </body>
    

Vue_2

事件

  • 事件绑定

    • 用法:使用v-on:click=” 或者简写@click=”

      var vue = new Vue({
              el:'#dd',
              methods:{
                  fun1:function{
                      alert(1);
                  }
              }
          })
          <div id='dd'>
              <input type='text' @click='fun1'>
          </div>
      
  • 事件对象

    • 用法 fun1($event)

      var vue = new Vue({
          el:'#dd',
          methods:{
              fun1:function(ev){
                  alert(ev.clientX);
              }
          }
      })
      <div id='dd'>
          <input type='text' @click='fun1($event)'>
      </div>
      
  • 阻止冒泡

    • @click.stop=’fun1’

          //Vue的写法
          var vue = new Vue({
                  el:'#dd',
                  methods:{
                      fun1:function(){
                          alert(1);
                      },
                      fun2:funtion(){
                          alert(2);
                      }
                  }
              })
              <div id='dd' @click='fun2'>
                  <input type='text' @click.stop='fun1()'>
              </div>
          -----------------------------------------------------
          //原生Js的写法
          var vue = new Vue({
              el:'#dd',
              methods:{
                  fun1:function(ev){
                      ev.cancelBubble=true;
                      alert(1);
                  },
                  fun2:funtion(){
                      alert(2);
                  }
              }
          })
          <div id='dd' @click='fun2'>
              <input type='text' @click='fun1($event)'>
          <div>
      
  • 阻止默认事件

    • Vue的写法

      @contextmenu.prevent='fun1()';
      
    • 原生Js的写法

      fun1:function(ev){
          ev.preventDefault();
      }
      
  • 键盘事件绑定特殊按键

    @keydown.enter='fun1' / @keydown.13='fun2'
    

属性

  • 一般属性的绑定

    • 用法: v-bind:attribute = ‘dd’ 或者简写成 :attribute =’dd’

      var vue = new Vue({
              el:'#dd',
              data:{
                  url:'a.png'
              }
          })
      <div id='dd'>
          <img :src='url'>
      </div>
      
  • class 属性的绑定

        <style>
            .a{
                color:red;
            }
            .b{
                backgroundcolor:blue;
            }
        </style>
    
    • 用法一: :class= ‘[data里的数据]’

      var vue = new Vue({
                  el:'#dd',
                  data:{
                      class1:a;                       }
              })
          <div id='dd'>
          <p :class='[class1]'></p>
      
    • 用法二: :class= ‘{a:true,b:false}’ 绑定一个Json数组

      //此时a样式起作用,b样式不起作用
      <div id='dd'>
      <p :class='{a:true,b:false}'></p>
      --------------------------------------------------------
      //当然也可以这样写
      
      var vue = new Vue({
          el:'#dd',
          data:{
          g:true,
          h:false                     }
      })
      <div id='dd'>
      <p :class='{a:g,b:h}'></p>
      
    • 用法三: :class=’json’

      var vue = new Vue({
          el:'#dd',
          data:{
              json:{
                      a:true,
                      b:false;
                   }                      
          }
      })
      <div id='dd'>
      <p :class='json'></p>
      
  • style 属性的绑定

    • 用法一: :style= ‘[a,b]’ a,b同样是数据

      var vue = new Vue({
          el:'#dd',
          data:{
              a:{color:red},
              //复合样式必须遵循驼峰式命名
              b:{backgroundColor:blue}                
          }
      })
      <div id='dd'>
      <p :style='[a,b]'></p>
      
    • 用法二: :style=’json’

      var vue = new Vue({
          el:'#dd',
          data:{
              a:{
                  color:red,
                  backgroundColor:blue
              }           
          }
      })
      <div id='dd'>
      <p :style='a'></p>
      

模板

  • 基本写法 {{message}},双向绑定,动态更新
  • 只更新一次的写法v-once=’message’
  • 转义html标签的写法v-html=’message’

过滤器

  • Vue 2.0当中去除了内置的过滤器
  • 过滤器注册 ,提供的全局的过滤器注册组件,具体使用方法看下例:

    window.onload = function () {
       Vue.filter('cap',function (value) {
          return value.toUpperCase();
       });
        var vue = new Vue({
           el:'#dd',
           data:{
              message:'asdfgh'
           }
       });
    }
    <div id ='dd' >
        <input type="text"  v-once="message" v-model="message"/><br />
        //前台数据显示ASDFGH
        <p>{{message | cap}}</p>
     </div>
    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值