You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9 + Vue.js 3实现MySQL指定数据行展示方案咨询

实现Vue.js 3仅展示指定行数据的两种方案

你可以通过前端过滤或后端过滤两种方式实现只展示指定行的数据,以下是具体实现方法:

方案一:前端过滤(适合数据量较小的场景)

在Vue组件内对获取到的原始数据进行筛选,直接渲染符合条件的条目。推荐用计算属性实现,性能更优。

示例代码

<template>
  <!-- 循环渲染过滤后的结果 -->
  <div v-for="item in filteredItems" :key="item.id">
    {{ item.name }}
  </div>
</template>

<script setup>
import { ref, onMounted, computed } from 'vue';
import axios from 'axios';

const items = ref([]);

// 从后端获取全量数据
onMounted(async () => {
  const res = await axios.get('/api/users');
  items.value = res.data;
});

// 计算属性:过滤出name为John Doe2的行,可根据需求修改匹配规则
const filteredItems = computed(() => {
  // 精确匹配
  return items.value.filter(item => item.name === 'John Doe2');
  
  // 若需要模糊匹配(比如包含Doe2的名称),可改成:
  // return items.value.filter(item => item.name.includes('Doe2'));
});
</script>

也可以直接在v-for中搭配v-if实现,但数据量大时性能不如计算属性:

<template>
  <div v-for="item in items" :key="item.id" v-if="item.name === 'John Doe2'">
    {{ item.name }}
  </div>
</template>

方案二:后端过滤(适合数据量大、需权限控制或减少带宽的场景)

让Laravel接口直接返回符合条件的数据,前端无需额外处理,直接渲染即可。这种方式能减少数据传输量,也更安全(避免前端拿到敏感数据)。

Laravel后端代码

// routes/api.php
Route::get('/users', [UserController::class, 'index']);

// app/Http/Controllers/UserController.php
use App\Models\User;
use Illuminate\Http\Request;

class UserController extends Controller
{
    public function index(Request $request)
    {
        // 可接收前端传入的过滤参数,或直接固定条件
        $targetName = $request->query('name', 'John Doe2');
        
        // 查询并返回符合条件的数据
        return User::where('name', $targetName)->get();
    }
}

Vue前端代码

<script setup>
import { ref, onMounted } from 'vue';
import axios from 'axios';

const items = ref([]);

// 请求时携带过滤参数,直接获取指定数据
onMounted(async () => {
  const res = await axios.get('/api/users', {
    params: { name: 'John Doe2' }
  });
  items.value = res.data;
});
</script>

内容的提问来源于stack exchange,提问作者user21099803

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 07:41:29