发表于: 2019-12-05 23:44:36

1 1201


今天完成的事情:

今天vue的一些功能和使用都了解完毕,用的比较多的就是动态的设置style以及css。

设置css的时候一般用的比较的多的是对象语法,顾名思义就是用v-bind:class然后指派给一个对象如下:

<div v-bind:class="{ active: isActive }"></div>

其中isActive是个布尔值,true则active渲染出来反之则不会被渲染,通过这一特性即可实现动态的调节css,

也可以用三元运算符的形式来写如下:

<div v-bind:class="[isActive ? activeClass : '', errorClass]"></div>

当需要设置内联样式style的时候我们可以通过v-bind:style来设置,然后指派要给对象,通过对象来设置style如下:

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

用这种方式写的话会比较清楚。

然后做了一个练习,用vue生成一个列表,然后被点击的元素变成红色,一开始想了很久没有想明白怎么做,后来发现自己想的方向是错的,实现的方法跟js或者jq的思维方式还是有些不一样的,vue是个声明式渲染的框架,而之前我接触过的都是编程式渲染。感觉做这个小练习的时候是一个思维方式的转变。

先用v-for并指定对象然后生成一个列表代码如下:

<li @click='changecolor(index)' v-for='(m,index) in movies':class='{active: index===i}'>{{m}}</li>

其中movie是个数组然后m表示数组中的值,然后index是键名。

var obj2 = new Vue({
    el: '#obj2',
    data: {
      movies: ['海王' , '哈利波特' , '火影忍者' , '钢铁侠'],
      i: 0,
    },
    methods: {
      changecolor(index) {
        console.log(index);
        this.i = index;
      },
    }
  })

设置一i 为 0,这是默认第一个元素是红色的,然后每次点击改变i的值,然后在:class中设置active: index === i ,表示如果键名等于i则反会true,则active配渲染出来,然后字体变红。也就是被点击的字体变红,而其他的元素因为键名等于i则active不会被渲染出来。

明天要做的事情:

开始脚手架的安装和使用,再有就是查漏补缺看看基础部分有什么遗漏,着手任务六的编写。


返回列表 返回列表
评论

    分享到