vue指令(组件)的基本使用一

时间:2022-06-04 22:05:15

接触过angular 的小伙伴们可能觉得学起vue的指令更加简单(个人认为),因为很相似,但一些语法略有不同,记录一下遇到的问题

首先来说一下vue2.0以后很多语法发生变化,但我们往往搜索到的文章是用1.0的语法,这时可能就要多注意一下新语法是如何写的;例如 v-for 的index属性,在之前是$index,

但你在2.0中使用就会报$index is not defined;

一、v-for

<ul>  
         <li @click="toggle(tab.view,index)" v-for="tab in tabs" v-bind:class="{active: index==active}">
        {{tab.type}}  
        </li> 

<ul/>

解决了$index,发现还是报错,语法写的有问题,index也找不到;后来想到是不是没有引入index,解决

<ul>  
         <li @click="toggle(tab.view,index)" v-for="(tab,index) in tabs" v-bind:class="{active: index==active}">
        {{tab.type}}  
        </li> 

<ul/>

犯这个错误可能是受angular 影响,我记得 angular的ng-repeat  的$index并不需要引入,注意吧;

v-for 除了这种写法,还可以是v-for="((key,value)) in tabs" 与angular 类似;

二、v-bind:class 或:class 

1、对象语法

支持某个css实现与否,值为boolean值,true或false,等同ng-class  v-bind:class="{active: index==active}",支持多个class属性v-bind:class="{active: index==active,name:true(或者boolean变量)}"

2、数组语法(官网)-没用过

<divv-bind:class="[activeClass, errorClass]"></div>

data: {

activeClass:'active',

errorClass:'text-danger'

}

三、v-bind:src 图片路径   这里vue2.0和1有区别,注意(1.0为src)

四、v-style(官网)与na-class雷同

1、对象语法

<divv-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>

data: {activeColor:'red',fontSize:30}

或者另外的更好

<divv-bind:style="styleObject"></div>

data: {styleObject: {color:'red',fontSize:'13px'}}

2、数组语法

<divv-bind:style="[baseStyles, overridingStyles]"></div>

多个数组对象

五、v-if \v-show 区别无非一个是移除元素,一个是display:none,值都为boolean值

六、v-on:click (还有其他)等事件

七、绑定基本数据   {{}}与angular 相似,出现加载{{}}问题,angular 用ng-bind=""绑定,vue 我还没试,貌似有cloak方法

八、表单组件 

v-model 与ng-model 类似, 绑定data,即可实现双向绑定;

九、过滤器

用于对数据进行处理(有全局和局部两种)

1、局部(用|)

{{ message | capitalize }}

你可以在一个组件的选项中定义本地的过滤器

filters: {

capitalize:function (value){

 if (!value) return''

value = value.toString()

return value.charAt(0).toUpperCase() + value.slice(1)

}

}

也可实现函数传参

{{ message | filterA('arg1', arg2) }}

全局过滤器还没用到;就这些吧,都是基础了;