首页 > 其他分享 >vue2,新闻渲染效果

vue2,新闻渲染效果

时间:2023-01-10 21:55:46浏览次数:43  
标签:chuan name 效果 渲染 vue2 组件 data id

做一个新闻渲染的效果,最后呈现的效果

 

 

 数据放入父组件中,公共样式放入子组件中

父组件中引入子组件,放入数组,然后进行样式渲染

<template>
<div class="zong">
  <news :list="arr" :title="title"></news>
</div>
</template>

<script>
import news from "@/components/news";
export default {
  name: "15-新闻组件()news",
  components : {
    news
  },
  data() {
    return {
      title:`本周热门搜索`,
      arr: [
        {id : 1,name : `区块链`,data : `96`,},
        {id : 2,name : `数据挖掘`,data : `91`},
        {id : 3,name : `无人机`,data : `87`},
        {id : 4,name : `生命科学`,data : `72`},
        {id : 5,name : `传感器`,data : `60`},
      ],
    }
  },
}
</script>

<style scoped>
.zong {
  width: 300px;
  height: 600px;
  border: 1px solid #0ac2f3;
  background-color: #f4f6fa;
  padding-top: 10px;
}
</style>

子组件中创建号样式,进行数组和标题接收

<template>
<div>
<!--  组件整体背景-->
  <div class="background">
<!--    组件头部-->
    <table></table>
<!--    组件身体-->
    <tr></tr>
  </div>
</div>
</template>

<script>
export default {
  name: "news",
  props : {
    list : {
      type : Array
    },
    title : String
  }
}
</script>

<style scoped>
.background {
  margin-left: 50px;
  width: 200px;
  border-radius: 5px;
  overflow: hidden;
  background-color: #ffffff;
  margin-bottom: 20px;
}
</style>

 

进行插槽使用,把数据渲染到页面中,使用子组件写出来固定的页面,父组件把数据渲染上去,然后写出来不固定的区域

子组件中插入插槽,和样式

<!--  组件整体背景-->
  <div class="background">
<!--    组件头部-->
    <table></table>
<!--    组件身体,使用v-for进行组件渲染-->
    <tr v-for="i in list" :key="i.id">
<!--      进行创建一个div更好让内容进行分开-->
      <div class="TD">
<!--        声明左右插槽,等一下放入内容,作用域插槽把参数传给父组件,父组件等一下可以进行页面渲染-->
        <div class="left"><slot name="left" :chuan="i"></slot></div>
        <div class="right"><slot name="right" :chuan="i"></slot></div>
      </div>
    </tr>
  </div>

添加lleft和right样式

.TD {
  width: 200px;
  line-height: 40px;
  font-size: 12px;
  border-bottom: 1px solid  #f3f3f3;
}
tr {
  height: 40px;
}
.left {
  float: left;
  margin-left: 10px;
}
.right {
  float: right;
  margin-right: 10px;
}

父组件进行接收插槽传参,渲染到页面中

  <news :list="arr" :title="title">
<!--    父组件进行作用参数接收,然后渲染数据到子组件固定的页面中-->
    <template #left="shou">{{shou.chuan.name}}</template>
    <template #right={chuan}>{{chuan.data}}</template>
  </news>

子组件进行头部传值,父组件接收并且渲染到子组件中

    <table>
      <slot name="table" :title="title"></slot>
    </table>
table {
  width: 200px;
  height: 30px;
  background-image: linear-gradient(90deg, #1777ff, #69c6fc);
  line-height: 30px;
  font-size: 14px;
  color: #f4f6fa;
  padding-left: 12px;
  font-weight: 700;
}

父组件进行接收,渲染到页面

<div class="zong">
  <news :list="arr" :title="title">
    <template #table="{title}">{{title}}</template>
    <!--    父组件进行作用参数接收,然后渲染数据到子组件固定的页面中-->
    <template #left="shou">{{shou.chuan.name}}</template>
    <template #right={chuan}>{{chuan.data}}</template>
  </news>
</div>

第二个样式

和第一个样式,不过我们传入新的数组,和新的标题,新的标题有两个部分,我们需要给标题添加一个新的插槽

父组件进行数组添加,传值和页面渲染

  data() {
    return {
      title:`本周热门搜索`,
      arr: [
        {id : 1,name : `区块链`,data : `96`,},
        {id : 2,name : `数据挖掘`,data : `91`},
        {id : 3,name : `无人机`,data : `87`},
        {id : 4,name : `生命科学`,data : `72`},
        {id : 5,name : `传感器`,data : `60`},
      ],
      // 传入第二批数组
      Title : `感兴趣的电影`,
      huan : `换一批`,
      Arr: [
        {id : 1,name : `无人区`,data : `10`,information : `导演`},
        {id : 2,name : `疯狂的赛车`,data : `20`,information : `导演`},
        {id : 3,name : `战狼`,data : `30`,information : `导演`},
        {id : 4,name : `上海堡垒`,data : `400`,information : `主演`},
      ],

 

<!--  第二个框架样式,引入数组,-->
  <news :list="Arr" :Title="Title" :huan="huan">
    <template #table="{Title}">{{Title}}</template>
    <template #huan="{huan}">{{huan}} 

标签:chuan,name,效果,渲染,vue2,组件,data,id
From: https://www.cnblogs.com/hgng/p/17041473.html

相关文章