> 文章列表 > VUE基本语法——样式绑定及渲染

VUE基本语法——样式绑定及渲染

VUE基本语法——样式绑定及渲染

目录

绑定class

字符串写法

数组写法

对象写法

内联样式

Demo

条件渲染

v-if

语法

v-show

语法

总结

列表渲染

v-for

语法

使用范围

v-for中key值

用index去作为key他会出现什么问题呢?

实际应用汇总我们如何选择key呢?


绑定class

字符串写法

适用于样式的类名不确定,需要动态指定

数组写法

它适用于要绑定的样式个数是不确定的,名字也是不确定的

对象写法

它适用于我们药泵丁的样式个数确定了,名字也确定了,但是要动态判断是否绑定的操作

内联样式

内联样式的使用方式和上面的三种方式同样适用

1、:style="{fontSize:xxx}"其中xxx是动态值。

2、:style=“[a,b]”,其中a和b是我们定一个的样式对象。

Demo

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14"></script><title>Title</title><style>.basic{width: 100px;height: 50px;background: aqua;}.moodclass{background: red;border-radius:10px;}.a{border-radius:20px;}.b{border-radius:30px;}.c{border-radius:60px;background: bisque;}</style>
</head>
<body><div id="root"><div class="basic" :class="mood">{{name}}</div><br/><div class="basic" :class="classArr">{{name}}</div><br/><div class="basic" :class="classObj">{{name}}</div></div>
</body><script type="text/javascript">// Vue.config.productionTip = false;// 创建一个Vue实例new Vue({el:'#root', // el用于指定当前vue实例是为哪一个容器服务的,通常是css选择器字符串data:{  // 此处的data用于存储数据,数据是供我们el所指定的容器去使用的,我们这里暂且吧值写为一个对象。name:'我是一个div',mood:'moodclass',classArr:['a','b','c'],classObj:{a:true,b:true,c:true}},})
</script>
</html>

条件渲染

条件渲染vue为我们提供了了两种实现方案,分别是v-if和v-show

v-if

特点是不展示DOM元素,直接被移除的。它适用于切换频率比较低的场景

语法

1、v-if=“表达式”

2、v-else-if="表达式"

3、v-else=“表达式”

注意:上述三种方式可以组合使用,但是前提条件是结构紧凑,中间不能夹杂其他组件,否则不会正确执行

v-show

他是不展示DOM元素的,并且也不会被移除,他只是将我们的样式隐藏了而已。它适用于切换品鹿比较高的场景中

语法

v-show=“表达式”

总结

当我们使用v-if的时候,元素可能会出现无法获取到的情况;但是,我们使用v-show的时候,则一定可以获取到元素。

列表渲染

v-for

它用于展示我们的列表数据

语法

v-for=“(item,index) in xxx”  :key="index"

使用范围

他可以遍历的有:对象、数组、指定参数(极少用)、字符串(极少用)

v-for中key值

虚拟DOM中的key有什么作用呢?

key其实是虚拟DOM对象的一个标识,当他的数据发生改变的时候,Vue会根据这个新的数据生成一套新的虚拟DOM,之后Vue会将新的虚拟DOM和旧的虚拟DOM进行比对,检查是否会有差异变化

比较的规则如下:

1、他先拿到新的虚拟DOM的key然后在去旧的虚拟DOM中找到一致的key

        1)、如果虚拟DOM中的内容没有改变,那么他会直接将之前定的DOM展示到页面

        2)、如果虚拟DOM中的内容已经发生改变,那么会重新生成一个真实的DOM,最后替换掉页面上之前的真实DOM信息用于展示

2、新的虚拟DOM的key值如果在旧的虚拟DOM中没有找到到,那么创建新的真是DOM,之后他会渲染到页面上进行展示。

用index去作为key他会出现什么问题呢?

1、如果我们对数据进行了一个逆向添加数据、逆序删除这种具有比较非常规的操作,那么会产生一些没有必要的真实DOM更新,虽然这样操作对于页面没有什么太大问题,但是效率时非常低的。

2、如果在他的结构中还包含了一些输入类的DOM,那么他会产生错误的Dom更新。则界面就出现了比较严重的问题。

实际应用汇总我们如何选择key呢?

1、这个在api中其实已经给定了标准,就是用我们唯一的标识,比如主键、身份证号等唯一的信息

2、假如没有对数据进行逆序操作的情况,只是用于对列表的渲染展示,使用index也是没有任何问题的。

好了,今天关于样式绑定及渲染的文章就到这里。

欢迎大家点击下方卡片,关注《coder练习生》