1.Vue 入门(v-if、v-else、v-else-if、v-show、v-for、v-text、v-html、v-on、v-bind)

Vue全家桶:

  vuejs + vue-router + vuex + vue-cli

项目全家桶:

  框架全家桶 + node + 数据库


使用vue的步骤:

  1.引入vue
  2.在body中创建一个元素,并且给它一个class或者id
  3.实例化Vue
    new Vue({
      el:第二步的名字,(#app | .app),
      data:{
        数据: ' '  |  { }  |  [ ]
      }
    })
  4.显示数据:
    在第二步的元素中输入
      {{ 数据名称 }}
例子--选项卡:
<style>
.active{
    background: yellow;
}
</style>
/************************************/
<body>
    <div id="ppa">
        <!-- 循环数据,当点击的时候把当前的key传到changeC中 -->
        <button 
            v-for="(val,key) in content"
            @click="changeC(key)" 
            :class="{active:key==num}"
        >
        按钮{{key+1}}
        </button>
        <!-- 循环数组,只要key等于num的就显示 -->
        <div 
            v-for="(val,key) in content"
            v-show="key==num"
        >{{val}}</div>
    </div>
<script src="vue.js"></script>
<script>
    new Vue({
        el:'#ppa',//父元素的id 或 class
        methods:{//method 方法 :{ 放事件函数 }
            changeC(key){
                this.num = key;
            }
        },
        data:{//放数据
            content:['1111','2222','3333'],
            num:0
        }
    })
</script>
</body>

v-if = "数据|判断"
只要条件成立,就显示if中的元素

v-else (注意:必须跟在v-if或者v-if-else的后面,不然失效)
如果if条件不成立显示当前的元素

v-else-if 要紧跟 v-if

v-show
条件成立就显示,不成立就display:none
性能比 v-if 略好。

<li v-for="(val,key,index) in obj">{{index}}</li>
val:数组中的每个值,对象每个值
key:数据就下标,对象key值
index:下标0,1,2

v-for="(val,key)" in obj

注意:
{{里面只能写一个变量}} -> {{index}}{{key}}

v-text => innerText 文本
v-html => innerHTML 内容(包括元素)

v-on:事件名
缩写:@事件名

事件函数写在 methods 下

methods在根实例下,值为一个对象

methods:{
  函数名( ){
    this指向实例
    this的数据修改,直接this.数据名即可
  }
}
 
 
比如:<button @click="fn">按钮</button>
  
  在事件函数中,如果不加括号就默认传入event对象,那么事件函数的第一个参数就是event对象。
  *** 如果在事件函数中,已经有参数了,但是还要使用event对象,那么就使用$event。
 
修饰符:
  .stop => event.stopPropagation() // 阻止冒泡
  .prevent => 调用 event.preventDefault() // 阻止默认行为

 
v-bind:class 给元素绑定class
  缩写:
    :class
  一般是用来操作属性的。 class   src   href   style
  :class='c'   可以写数据
  :class='{red:true}'   也可以是个对象   red->类名:布尔值,只有为true的时候才显示。
  :class='[c1,c2]'   c1和c2为对象{red:true}
例子:
    <style>
        #app-div div{
             100px;
            height: 100px;
        }
        .red{
            background: red;
        }
        .green{
            background: green;
        }
    </style>
</head>
<body>
    <div id='app-div'>
        <button @click='changeC'>点击变绿</button>
        <button @click='changeR'>点击变红</button>
        <button @click='change'>变</button>
        <!-- <div :class="c"></div> -->
        <div :class='[c1,c2]'></div>//c1.class,c2.class哪个是true,就显示哪个class。都为true,后面的会覆盖前面的
    </div>
    <script src="./Vue.js"></script>
    <script>
        new Vue({
            el:'#app-div',
            methods:{
                changeC(){
                    this.onOff = false;
                    this.c1.red=this.onOff;
                    this.c2.green=!this.onOff;
                },
                changeR(){
                    this.onOff = true;
                    this.c1.red=this.onOff;
                    this.c2.green=!this.onOff;
                },
                change(){
                    this.onOff=!this.onOff
                    this.c1.red = this.onOff
                    this.c2.green = !this.onOff
                }
            },
            data:{
                onOff:true,
                c1:{
                    red:''
                },
                c2:{
                    green:''
                }
            }
        })
    </script>
</body>
原文地址:https://www.cnblogs.com/MrZhujl/p/10197891.html