Vue2 第五节 class与style绑定,条件渲染和列表渲染

这篇具有很好参考价值的文章主要介绍了Vue2 第五节 class与style绑定,条件渲染和列表渲染。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.class与style绑定

2.条件渲染

3.列表渲染

一.class与style绑定

(1)绑定class

就是用v-bind绑定一个class

有三种不同的写法

1. 字符串写法:适用于样式的类名不确定,需要动态指定

Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

 Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

 2.数组写法:适用于要绑定的个数个名字都不确定,数组中的样式连同class里面有的样式都会绑定到div中

Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

 Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

 3. 对象写法:适用于要绑定的样式个数确定,名字也确定,但是动态决定用不用

如果要用,就将配置项改为true

Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

 如果将两个配置项都改为true

Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

(2) 绑定style

1.对象写法

Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

 Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

 Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

 2.数组写法

Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

 Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

 注意:对象写法和数组写法里面的属性字段不能瞎写,需要使用下划线转驼峰的写法

比如font-size要写成fontSize, background-color要写成backgroundColor

二.条件渲染

(1)v-show

(2)v-if  v-else-if   v-else

v-show

① 写法:v-show="表达式"

<h2 v-show="1 === 3">欢迎来到尚硅谷</h2>

② 适用于:切换频率比较高的场景

③ 特点:不展示的DOM元素未被移除,仅仅是使用样式隐藏掉

 Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

v-if

① 写法:v-if="表达式"    v-else-if="表达式"  v-else="表达式"

<h2 v-if="false">欢迎来到尚硅谷</h2>

② 适用于:切换频率较低的场景

③ 特点:不展示的DOM元素直接被移除

Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

④ 注意:v-if可以和v-else-if  v-else一起使用,但是结构不能被打断

        <div v-if="n === 1">Angular</div>
        <div v-else-if="n === 1">React</div>
        <!-- 前面条件都不符合 -->
        <div v-else>Vue</div>

⑤ 注意:使用v-if的时候,元素可能无法获取到,而使用v-show一定能获取到

⑥ 注意:template 只能和v-if配合使用,v-show无效

        <template v-if="n === 1">
            <h2>你好</h2>
            <h2>你好</h2>
            <h2>你好</h2>
        </template>

三.列表渲染

(1)v-for指令

  • 用于展示列表数据
  • 语法:v-for="(item, index) in xxx" :key="yyy"   key下一篇专门写原理
  • 可以遍历数组,对象,字符串(用的比较少),指定次数(用的很少)
  • 遍历数组:p对应的就是数组里面的值,index对应数组的下标
  • 遍历对应:val是属性值,k是属性名
  • 遍历字符串:char表示字符串中的每个字符,index表示字符串的下标
  • 遍历指定次数:index表示下标(从0开始),number表示值
<!-- 遍历数组 -->
<ul>
   <li v-for="(p,index) of persons" :key="index">
       {{p.name}}-{{p.age}} </li>
</ul>


<!-- 遍历对象 -->
<ul>
   <li v-for="(val,k) of car" :key="k">
        {{val}}-{{k}} </li>
</ul>

<!-- 遍历字符串 -->
<ul>
   <li v-for="(char,index) of str" :key="index">
       {{index}}-{{char}}
   </li>
</ul>


 <!-- 遍历指定次数 -->
 <ul>
     <li v-for="(number, index) of 5" :key="index">
       {{index}}-{{number}}
     </li>
</ul>

(2)  列表过滤(模糊搜索)

有两种方法实现:计算属性和监视

使用监视的方法实现

① 实现原理

  • 使用v-model让输入框中元素绑定到data的keyWord中
  • 使用watch监视keyWord,一旦keyWord改变了,立刻执行过滤关键字
  • 一旦keyWord发生变化,过滤关键字会返回一个新的数组,将该数组赋值给data中的filterPersons中
  • 使用v-for遍历filPersons,显示过滤之后的结构

② 实现步骤:

第一步:v-model绑定keyWord

Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

 第二步:监视input里面输入的值,将数组中包含input里输入值的数据筛选出来放到新数组中

Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

 第三步:在模板中遍历新数组去展示

Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

 实现效果:

Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

 2.使用计算属性

① 实现原理:

  • 计算属性依赖的keyword发生变化的时候就会重新执行计算属性
  • 这个时候就得到新的过滤之后的数组
  • 模板中遍历新的数组,就会得到过滤之后的数据

② 实现步骤:

第一步:在computed中直接返回符合条件的数据

Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

 第二步:在模板中遍历计算属性

Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

 实现效果

Vue2 第五节 class与style绑定,条件渲染和列表渲染,前端学习,Vue,前端,javascript,开发语言

(3) 列表排序

代码实现:文章来源地址https://www.toymoban.com/news/detail-617622.html

  • 通过计算属性实现,如果sortType 发生变化了,computed就会重新计算属性
  • 使用数组的sort方法,传入两个参数,因为数组里面的数据是对象类型,所以在进行计算时,需要使用age属性进行计算,p2 - p1就是降序, p1 - p2就是升序
 <div id="root">
        <h2>人员列表</h2>
        <input type="text" placeholder="请输入名字" v-model="keyWord">
        <button @click="sortType=2">年龄升序</button>
        <button @click="sortType=1">年龄降序</button>
        <button @click="sortType=0">原顺序</button>
        <ul>
            <!-- 遍历数组 -->
            <li v-for="(p,index) of filPersons" :key="p.id">
                {{p.name}}-{{p.age}}-{{p.gender}}
            </li>
        </ul>
    </div>
    <script type="text/javascript">
    // 计算属性
    const vm = new Vue({
            el:'#root',
            data: {
                keyWord:'',
                sortType: 0, // 0原顺序  1降序 2升序
                persons:[
                    {id:001, name:'马冬梅', age:30, gender:'女'},
                    {id:002, name:'周冬雨', age:31, gender:'女'},
                    {id:003, name:'周杰伦', age:18, gender:'男'},
                    {id:004, name:'温兆伦', age:19, gender:'男'}
                ]
            },
            computed:{
                filPersons() {
                    const arr = this.persons.filter((p) => {
                        return p.name.indexOf(this.keyWord) !== -1   
                })
                if(this.sortType) {
                    arr.sort((p1, p2) => {
                        return this.sortType === 1 ? p2.age - p1.age : p1.age - p2.age
                    })
                }
                return arr
            }
        }
    })

    </script>

到了这里,关于Vue2 第五节 class与style绑定,条件渲染和列表渲染的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue2项目练手——通用后台管理项目第五节

    面包屑 使用组件 使用vuex存储面包屑数据 src/store/tab.js src/components/CommonAside.vue src/components/CommonHeader.vue tag 使用组件 文件目录 CommonTag.vue Main.vue 全部代码: tabs.js 全部代码: 使用的组件 对话框 表单 页面布局与校验 Users.vue

    2024年02月10日
    浏览(29)
  • Vue教程(五):样式绑定——class和style

    样式提前准备 绑定class样式——字符串写法 适用于: 样式的类名不确定,需要动态指定 html: js: 效果: 绑定class样式——数组写法 适用于: 要绑定的样式个数不确定,名字也不确定 html: js 效果: 绑定class样式——对象写法 适用于: 要绑定的样式个数确定,名字也确定,

    2024年02月12日
    浏览(26)
  • uniapp、vue中动态添加绑定style、class

    1.普通对象动态添加(比较常见) 2. 数组 对象动态添加 3.三目运算动态添加

    2024年02月16日
    浏览(26)
  • vue、uniapp中动态添加绑定style、class 9种方法实现

    直接使用静态class和style属性: 使用场景:当class和style属性是固定不变的时候,可以直接在模板中写死。 优点:简单直接,没有额外的计算和逻辑。 缺点:无法根据条件动态修改class和style。 使用v-bind动态绑定class和style属性: 使用场景:当class和style属性需要根据组件的da

    2024年02月10日
    浏览(39)
  • 微信小程序wxml的数据和事件的绑定,以及条件和列表的渲染

    关于微信小程序知识点一共做了六个博客,涵盖大部分内容,有想学习的可以按照以下顺序查看 1.微信小程序的启动和渲染过程(加组件分类和组件的基本使用以及API分类) 2.微信小程序wxml的数据和事件的绑定,以及条件和列表的渲染 3.微信小程序wxss相关介绍、全局配置和tabbar知识

    2024年02月10日
    浏览(47)
  • Vue2 - 模板、渲染、事件处理、表单输入绑定

    本文内容来自:https://www.bilibili.com/video/BV1Rs4y127j8/ 1、文本 数据绑定最常见的形式就是使用“Mustache” (双大括号) 语法的文本插值 一般配合 js 中的 data() 设置数据 2、原始 HTML 双大括号会将数据解释为普通文本,而非 HTML 代码。为了输出真正的 HTML,你需要使用 v-html 指令 3、

    2024年02月16日
    浏览(26)
  • class与 style绑定

    在Vue中,我们可以通过绑定不同的class来实现对元素的样式操作。Vue提供了多种方式来绑定HTML class,包括对象语法、数组语法以及在组件上使用class属性。 对象语法允许我们根据不同的条件来动态地添加或删除class。以一个按钮元素为例,我们可以使用v-bind指令来绑定一个对

    2024年02月15日
    浏览(27)
  • 【Vue3】2-8 : 条件渲染与列表渲染及注意点

    一、条件渲染 - v-if = 表达式 1.1 真值与假值 1.2  v-if ,v-else-if ,v-else 1.3  实战:isShow1 为真值时 显示 bbbbb >  代码 >  效果 二、列表渲染 - v-for 2.1 渲染 - 数组 >  代码 >  效果 2.2 渲染 - 对象 >  代码 >  效果 2.3 渲染 - 整数  >  代码 >  效果 2.3 渲染 - 文本

    2024年02月02日
    浏览(34)
  • FE_Vue学习笔记 条件渲染[v-show v-if] & 列表渲染[v-for] 列表过滤 列表排序

    使用template可以使其里面的内容在html的结构中不变。条件渲染: v-if 1)v-if=“表达式” 2)v-else-if=“表达式” 3)v-else {} 适用于:切换频率较低的场景。特点:不展示的DOM元素直接被移除。注意:v-if可以和v-else-if、v-else一起使用,但要求结构不能被“打断”。 v-show 写法:

    2024年02月05日
    浏览(28)
  • 微信小程序开发---条件渲染和列表渲染

    目录 一、条件渲染 (1)基本使用  (2)block (3)hidden 二、列表渲染 (1)基本使用 (2)手动指定索引和当前项的变量名 (3)wx:key的使用 条件渲染就相当于if语句,这也不需要多说了,终点是它的用法。 如果想要一次性控制多个组件的展示和隐藏,可以使用block标签将多

    2024年02月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包