vue+elementUI +mysql获取后台返回的图片路径动态渲染页面

先上图,做出来的效果是这样的

 

 图片放在服务器下,mysql保存图片路径,数据类型为varchar

后台接口是用nodejs写的,查询数据库,前端调用接口,返回数据给前端

结构:

url字段存储的是图片的路径 

<el-table :data="myData.list" stripe border>

     <el-table-column label="宠物照" width="100px">

        <template  slot-scope="scope">

           <img :src="scope.row.url" alt="这是图片">

        </template>

     </el-table-column>

     <el-table-column prop="pets_id" label="宠物编号"></el-table-column>

     <el-table-column prop="pet_name" label="用户名"></el-table-column>

     <el-table-column prop="kind" label="品种"></el-table-column>

     <el-table-column prop="species" label="类别"></el-table-column>

     <el-table-column prop="color" label="毛发颜色"></el-table-column>

</el-table>

渲染页面的时候,最主要的代码:      

    <template  slot-scope="scope">

          <img :src="scope.row.url" alt="这是图片">

    </template>

这里的slot相当于一个小插槽,名为scope,:src绑定图片的路径,scope.row.url为获取当前所在的行的那条数据的url

比较坑的地方是一开始 这里<img :src="scope.row.url" alt="这是图片">路径容易弄错,一开始用的是v-for循环,后来想到elementUI组件自带的参数,可以直接使用scope.row,不用自己去循环遍历。

问题解决

------------------------------------------------------------------------------------------------------------------------------

鉴于 比较多小伙伴来问全部的代码,私信比较多有时候忘了回。这里贴上代码地址,自行取,仅供学习参考用。

github 的地址在这 :
https://github.com/tulip23/PetsWeChatProject

或者直接下载 

GitHub - tulip23/PetsWeChatProject: nodejs+vuejs+MySQL+微信小程序

不过运行项目时后台 服务可能需要你们自己配,因为后台服务处理图片路径时用的是nginx 映射本地图片地址,你们也可以用虚拟机代替。

  • 16
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
### 回答1: 抱歉,由于提供完整的代码涉及到多个文件和组件,无法在此回答。不过,我可以为您提供一个基本的代码框架和思路: 1. 在 Spring Boot 中创建一个 REST API 服务,用于获取动态路由信息并返回前端。可以使用 Spring Security 管理权限。 2. 在前端使用 Vue.jsElementUI 创建页面,使用 Vue Router 管理路由,包括静态路由和动态路由。 3. 在 Vue.js 中,使用 axios 发送请求到后端获取动态路由信息,并将其添加到路由配置中。 4. 在 ElementUI 中,可以使用菜单组件和面包屑组件展示路由信息,方便用户导航。 需要注意的是,动态路由的实现需要前后端共同配合,后端提供动态路由信息接口,前端调用接口并根据返回结果动态生成路由。由于每个项目的实现细节和逻辑都可能不同,因此需要具体情况具体分析,这里提供的只是一个大致的思路和框架。 ### 回答2: Vue + ElementUI + SpringBoot + MySQL 实现动态路由的全部代码示例如下: 1. Vue 前端代码: ```javascript // main.js import Vue from 'vue' import App from './App.vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' import router from './router' // 导入路由配置 import axios from 'axios' Vue.config.productionTip = false Vue.use(ElementUI) Vue.prototype.$axios = axios new Vue({ router, render: h => h(App) }).$mount('#app') ``` ```html <!-- App.vue --> <template> <div id="app"> <router-view></router-view> </div> </template> <script> export default { name: 'App' } </script> ``` ```javascript // router.js import Vue from 'vue' import VueRouter from 'vue-router' import axios from 'axios' import { Message } from 'element-ui' Vue.use(VueRouter) const routes = [ { path: '/', name: 'Home', component: () => import('@/views/Home.vue') }, // 其他路由配置... ] const router = new VueRouter({ mode: 'history', base: process.env.BASE_URL, routes }) // 动态路由获取示例 router.beforeEach((to, from, next) => { if (to.meta.requiresAuth) { // 路由需要权限验证 axios.get('/api/checkAuth').then(response => { if (response.data.success) { next() } else { Message.error('需要登录') next('/login') } }) } else { // 其他路由直接放行 next() } }) export default router ``` 2. SpringBoot 后端代码: ```java // AuthController.java @RestController @RequestMapping("/api") public class AuthController { @GetMapping("/checkAuth") public ResponseEntity<?> checkAuth() { // 检查权限的逻辑 // 返回一个标志,表示是否有权限 return ResponseEntity.ok().body(new ApiResponse(true, "权限验证通过")); } } ``` 3. MySQL 数据库表设计: ```sql CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `role` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `user_role` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `role_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `FK_user_role_user` (`user_id`), KEY `FK_user_role_role` (`role_id`), CONSTRAINT `FK_user_role_role` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`), CONSTRAINT `FK_user_role_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ``` 以上是基于 VueElementUI、SpringBoot 和 MySQL 实现动态路由的一个简单示例代码。具体的实现逻辑和业务需求可以根据实际情况进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值