问题形容

需要,给三个卡片的内容上要加上如下所示的索引。咱们先看一下效果图:

解决方案有两种:

  • 第一种,让后端返回数据的时候,把对应的索引拼接到数据的后面。(不举荐)
  • 第二种,前端通过v-text去解决,前端本人加。(举荐)

思路剖析

v-text平时如同是上面的这种用法,就是取值经常是从data中取值而后用v-text出现到页面下来。如下:

// html<span v-text="msg"></span>// jsdata(){    return {        msg:"我是v-text指令"    }}

这样的话,就会造成一个错觉,v-text如同就只用data外面的数据。其实,v-text也能够应用methods办法,或者computed计算属性。
咱们来看一下具体代码:
html局部

<template>  <div id="app">    <div class="card" v-for="(item, index) in cardArr" :key="index">      <!-- 定义一个办法numToHanZi1,将对应的索引传递过来,通过索引返回对应的汉字索引即可 -->      <div class="top"><span v-text="numToHanZi1(index)"></span>{{ item.Title }}</div>      <div class="bottom">        <div class="bottomContent" v-for="(item2, index2) in item.nameArr" :key="index2">           <!-- 这个也同理 -->           <span v-text="numToHanZi2(index2)"></span> {{ item2 }}        </div>      </div>    </div>  </div></template>

js局部(methods写法)
依据接管的索引,返回对应汉字的索引,写在办法外面,间接return对应咱们想要出现的字即可

    numToHanZi1(index){      // console.log("index1",index);      if(index == 0){        return "一、"      }else if(index == 1){        return "二、"      }else if(index == 2){        return "三、"      }    },

js局部(computed写法)
计算属性是要计算的后果,所以须要再return一个箭头函数,用于计算。同时接管参数,须要再箭头函数的形参括号外面接管参数

    numToHanZi1() {      // 在return的箭头函数外面接管参数      return (index) => {        if (index == 0) {          return "一、";        } else if (index == 1) {          return "二、";        } else if (index == 2) {          return "三、";        }      };    },

残缺代码

<template>  <div id="app">    <div class="card" v-for="(item, index) in cardArr" :key="index">      <!-- 定义一个办法numToHanZi1,将对应的索引传递过来,通过索引返回对应的汉字索引即可 -->      <div class="top"><span v-text="numToHanZi1(index)"></span>{{ item.Title }}</div>      <div class="bottom">        <div class="bottomContent" v-for="(item2, index2) in item.nameArr" :key="index2">          <!-- 这个也同理 -->          <span v-text="numToHanZi2(index2)"></span> {{ item2 }}        </div>      </div>    </div>  </div></template><script>export default {  data() {    return {      cardArr: [        {          Title: "前端开发",          nameArr: ["孙悟空", "猪八戒", "沙和尚"],        },        {          Title: "后端开发",          nameArr: ["宋江", "李逵", "卢俊义"],        },        {          Title: "测试",          nameArr: ["林黛玉", "贾宝玉", "薛宝钗"],        },      ],    };  },  computed: {    // numToHanZi1() {    //   // 在return的箭头函数外面接管参数    //   return (index) => {    //     if (index == 0) {    //       return "一、";    //     } else if (index == 1) {    //       return "二、";    //     } else if (index == 2) {    //       return "三、";    //     }    //   };    // },  },  methods: {    numToHanZi1(index){      // console.log("index1",index);      if(index == 0){        return "一、"      }else if(index == 1){        return "二、"      }else if(index == 2){        return "三、"      }    },    numToHanZi2(index) {      // console.log("index2",index);      if (index == 0) {        return "1.1";      } else if (index == 1) {        return "1.2";      } else if (index == 2) {        return "1.3";      }    },  },};</script><style lang="less" scoped>#app {  width: 100%;  height: 100vh;  box-sizing: border-box;  padding: 50px;  display: flex;  .card {    box-sizing: border-box;    padding: 25px;    width: 300px;    height: 300px;    border: 1px solid #e9e9e9;    margin-right: 50px;    .top {      width: 100%;      height: 25px;      font-style: normal;      font-weight: 600;      font-size: 24px;      line-height: 25px;    }    .bottom {      width: 100%;      height: calc(100% -25px);      .bottomContent {        margin-top: 25px;      }    }  }}</style>

总结

其实很简略,就是记住methods中的写法和computed中的写法的区别即可。思路就是这样的,不过具体的问题,再具体分析一下,其实很多中央的methods写法和computed写法大抵都是这样的

如果想要钻研具体数字转汉字的办法,我举荐一篇文章,挺好
https://www.jb51.net/article/...