17、将数据渲染到组件(列表渲染、模板语法、父子组件之间的传值)

前言:GitHub:https://github.com/Ewall1106/mall(请选择分支17)

1、基础语法

(1)v-for语法
https://cn.vuejs.org/v2/guide/list.html
我们用 v-for 指令根据一组数组的选项列表进行渲染。v-for 指令需要使用 item in items形式的特殊语法,items 是源数据数组并且 item 是数组元素迭代的别名。

img_1e46406ce72f9143f47b9154954b63a8.png
vue官网

(2)模板语法
https://cn.vuejs.org/v2/guide/syntax.html
我们获取到的值要用模板语法将值插入到页面中, 数据绑定最常见的形式就是使用Mustache语法 (双大括号) 的文本插值:

<span>Message: {{ msg }}</span>

(3)父子组件之间的传值
https://cn.vuejs.org/v2/guide/components-props.html
在Vue中,父子组件的关系可以总结为prop向下传递,事件向上传递。父组件通过prop给子组件下发数据,子组件通过事件给父组件发送信息。

img_e1d53a166f67b2530062d6d789b35a70.png
vue官网

具体我们在项目中动手实现简单的传值。

2、项目运用

(1)数据赋值于data中
上一篇我们用axios获取了数据并打印了,现在我们先把数据赋值data的属性中。

img_563854d9d4d144b4b0fca72634140fd1.png
赋值

(2)传值给轮播图子组件

  • ① 通过 v-bind动态赋值,把轮播图这个数据对象传递给轮播图组件carousel。
img_a6695706605b6169f286d9f6944c6ede.png
父组件传值

:是v-bind的简写形式

  • ② 子组件接收数据
    子组件什么接收数据呢?很简单,在props中定义属性名就可以了;
    然后用type定义一下传过来的数据类型,进行验证;default属性则是定了个默认值。
img_5e70ee1339a74dd3233923bd0d7955e0.png
子组件接收值
  • ③ 接下来就是用v-for循环把数据渲染到页面上
img_8091dec3d25f3f2f13437584f00af9de.png
数据渲染

ok,至此为止,父子组件的基本传值就是这样了。

(3)分类模块
跟轮播图组件渲染数据的模式大同小异,不过多阐述。

img_b2579bea812671706d769368c312a8f5.png
分类模块数据渲染

(4)推荐模块
这是除了使用前面提到的列表渲染外,就是使用Mustache语法 (双大括号) 的文本插值了。

img_ac1d9a2a32c5a3b72197fdb78de159cc.png
推荐模块数据渲染

3、章结

至此,我们就将首页的mock数据从建立—>到访问—>渲染到页面的一个基本的流程走完了,后面我们根据页面的拓展会对mock数据进行修改和添加,所以请实时关注;再者,当请求数据的接口多了,这样写axios肯定会麻烦,所以后面也会对axios进行下统一的封装。

参考学习
https://cn.vuejs.org/v2/guide/list.html
https://cn.vuejs.org/v2/guide/syntax.html
https://github.com/Ewall1106/mall

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值