vue前端+java后端

方案一: 

在jsp里写vue 也就是所把jquery换成vue就行 (不知道这样能做spa吗? 能用vue-router吗? 好像也能做, 感觉会很乱, 适合微型项目)

java后端什么时候适合vue呢

写起来就发现了,展示型网站写进这些前端框架里实在太蠢了,又没什么页面内交互(一点击就要换页面),原生html还得照着这些框架的规矩改写,又累又没什么意义,完全跟后台模板没法比。
jsp渲染慢?,后台java运行慢?上消息队列把能异步的都异步啊,上负载均衡啊,上...。前台渲染慢?js/css等等静态文件上缓存上CDN啊。
中后端管理平台是很适合这些前端框架的



方案二:

既然使用vue,那就不要使用jsp了,jsp是后端渲染,生成页面发给浏览器,使用vue用浏览器渲染;

使用vue和java做单页面网站,浏览器第一次访问该网站,java把静态html页面和js等发给浏览器,浏览器点击跳转时前端模拟路由,然后js使用fetch,ajax这些发送HTTP请求数据,java接收HTTP请求后将数据返回后,vue接收请求获取数据,重新渲染显示页面。
因为无需渲染页面,java只负责使用rest收发json数据,性能肯定更高了
  • 13
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 28
    评论
前端 Vue.js 代码: ``` <template> <div> <table> <thead> <tr> <th>ID</th> <th>Name</th> <th>Price</th> </tr> </thead> <tbody> <tr v-for="product in products" :key="product.id"> <td>{{ product.id }}</td> <td>{{ product.name }}</td> <td>{{ product.price }}</td> </tr> </tbody> </table> <el-pagination v-if="total > 0" :page-size="pageSize" :total="total" :current-page="currentPage" @current-change="handlePageChange" /> </div> </template> <script> import axios from 'axios' export default { data() { return { products: [], currentPage: 1, pageSize: 10, total: 0 } }, mounted() { this.getProducts() }, methods: { getProducts() { axios.get('/api/products', { params: { page: this.currentPage, pageSize: this.pageSize } }).then(res => { this.products = res.data.list this.total = res.data.total }) }, handlePageChange(page) { this.currentPage = page this.getProducts() } } } </script> ``` 后端 Java Spring Boot 代码: ``` @RestController @RequestMapping("/api") public class ProductController { @Autowired private ProductService productService; @GetMapping("/products") public PageResult<Product> getProducts(@RequestParam Integer page, @RequestParam Integer pageSize) { return productService.getProducts(page, pageSize); } } ``` ``` @Service public class ProductServiceImpl implements ProductService { @Autowired private ProductRepository productRepository; @Override public PageResult<Product> getProducts(Integer page, Integer pageSize) { Sort sort = Sort.by(Sort.Direction.DESC, "id"); Pageable pageable = PageRequest.of(page - 1, pageSize, sort); Page<Product> productPage = productRepository.findAll(pageable); List<Product> productList = productPage.getContent(); long total = productPage.getTotalElements(); return new PageResult<>(productList, total); } } ``` ``` public interface ProductService { PageResult<Product> getProducts(Integer page, Integer pageSize); } ``` ``` public interface ProductRepository extends JpaRepository<Product, Long> { } ``` 以上是一个简单的Vue.js + Java Spring Boot实现分页功能的示例,具体实现还需要根据业务需求进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值