例如,我有这个objects of array:

const data = [
  { name: 'John', age: 25, 'body' : "this data has link https://stackoverflow.com/questions/ask" },
  { name: 'Jane', age: 31, 'body' : "this data has link https://stackoverflow.com/questions/ask" },
  { name: 'Bob', age: 18, 'body' : "this data has link https://stackoverflow.com/questions/ask" }
];

frontend里展示的话怎么才能变成link呢?

推荐答案

如果我理解正确的话,请看下面的片段:

const { reactive, computed } = Vue
const app = Vue.createApp({
  setup() {
    const mydata = reactive([
      { name: 'John', age: 25, 'body' : "this data has link https://stackoverflow.com/questions/ask" },
      { name: 'Jane', age: 31, 'body' : "this data has link https://stackoverflow.com/questions/ask" },
      { name: 'Bob', age: 18, 'body' : "this data has link https://stackoverflow.com/questions/ask" }
    ])
    const formatedData = computed(() => {
      const expression = / *https:.+/
      return mydata.map(d => {
        let link = d.body.match(expression)
        d.body = d.body.replace(expression, ` <a href="${link}">${link}</a>`)
        return d
      })
    })
    return { mydata, formatedData }
  }
})
app.mount('#demo')
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>
<div id="demo">
  <div v-for="(dat, i) in formatedData" :key="i">
    <p>{{ dat.name }} - <span>{{ dat.age }}</span></p>
    <div v-html="dat.body"></div>
  </div>
</div>

Javascript相关问答推荐

为什么剧作家在导航时会超时?

为什么(1 + Number.Min_UTE)等于1?

以逗号分隔的列表来数组并填充收件箱列表

如何使用JavaScript动态地将CSS应用于ToDo列表?

强制执行useStatego struct 化变量[foo,setFoo]的命名约定?

Express.js:使用Passport.js实现基于角色的身份验证时出现太多重定向问题

D3多线图显示1线而不是3线

微软Edge Select 间隙鼠标退出问题

react/redux中的formData在expressjs中返回未定义的req.params.id

将状态向下传递给映射的子元素

PrivateRoute不是路由组件错误

在Vite React库中添加子模块路径

使用GraphQL查询Uniswap的ETH价格

如何使用子字符串在数组中搜索重复项

制作钢琴模拟器,并且在控制台中不会执行或显示该脚本

Webpack在导入前混淆文件名

如何使用基于promise (非事件emits 器)的方法来传输数据?

如果一个字符串前面有点、空格或无字符串,后面有空格、连字符或无字符串,则匹配正则表达式

在Odoo中如何以编程方式在POS中添加产品

为列表中的项目设置动画