Vue-03

Vue指令

  • v-bind
    作用:动态设置html的标签属性(src url title…)
    语法:v-bind:属性名="表达式"
    举例代码如下:
    1a
    实现效果如下:
    1b

  • 案例:图片切换
    实现代码如下:
    2a

    实现的效果如下图所示,在第一张照片上。index = 0,所以没有上一页这个按钮。

    2b

    点击下一页,显示下一张图,效果如图所示:

    2c

    在最后一张图,index = list.length - 1,因此没有下一页这个按钮:

    2d

  • v-for
    作用:基于数据循环,多次渲染整个元素。 (数组、对象、数组…)
    遍历数组语法:v-for="(item, index) in 数组"
    item 每一项,index 下标。
    使用代码如下:
    3a
    效果如下:
    3b

  • 图书管理案例 - 书架
    需求:

    1. 基本渲染 → v-for
    2. 删除功能


    使用v-for进行基本渲染后,效果如图,其中 item 代表的是 bookList 中的每一行:

    3c

    对于此,做了如下改进,将作者和姓名列出,效果如下:

    3d

    接下来,开始实现删除功能(数据驱动),本质上就是要删除数组里面的对应项,实现此功能有两种思路,一个是根据 index 删除,另一个是根据 id 删除。
    这两种方式优先使用后者(有 id 优先使用 id )
    以下代码可以实现删除功能:

    3e

    上述代码还有一点小瑕疵,为进一步完善,在 v-for 中加入了key
    语法:key属性 = "唯一标识"

    下面展示加 key 与不加 key 的区别,为此讲 li 标签的 background属性设为pink,得到的样式如下:
    4a

    在没有 key 的时候,点击删除红楼梦这一项之后,可以发现刚才的 li 还在(背景仍为粉色),只是里面的文字内容改变了:
    4b
    而加入 key 之后,key 的作用在于:给元素添加的唯一标识,便于 Vue 进行列表项的正确排序复用。
    加入 key 后点击删除的效果如图:

    <li v-for="(item, index) in bookList" :key="item.id">
    

4c

注意点:

  1. key 的值只能是字符串或数字类型
  2. key 的值必须具有唯一性
  3. 推荐使用id 作为 key(唯一),不推荐 index 作为 key(会变化,不对应)
  • v-model
    作用:给表单元素使用,双向数据绑定 → 可以快速获取或设置表单元素内容

    1. 数据变化 → 视图自动更新
    2. 视图变化 → 数据自动更新

    语法:v-model = '变量'
    实现代码示例如下(代码中实现了重置功能):
    5a

  • 综合案例 - 记事本
    需求:

    1. 列表渲染
    2. 删除功能
    3. 添加功能
    4. 底部统计和清空

    首先,使用以下代码实现列表渲染:
    6a
    6b
    其次,注册点击事件,实现删除功能。
    7a
    7b
    然后来实现添加功能,此功能分为两个核心步骤。

    1. 通过 v-model 绑定输入框 → 实时获取表单元素的内容
    2. 点击按钮,进行新增,往数组最前面加 unshift
      代码实现如下:
      8a
      8b
      最后,实现底部统计和清空功能,同时进一步优化,如果当前没有任务了,不要显示底部统计和清空功能。

9

10
关于记事本的完整代码如下(没有添加css样式):
11a

11b

  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值