Vue.js框架简单读取数据库信息并渲染完成news新闻文章列表以及detail详情页功能(小试牛刀)

简介: Vue.js框架简单读取数据库信息并渲染完成news新闻文章列表以及detail详情页功能(小试牛刀)

项目结构



news.html(新闻列表文件)


<!doctype html>

<html lang="en">

<head>

   <meta charset="UTF-8">

   <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

   <meta http-equiv="X-UA-Compatible" content="ie=edge">

   <title>Vue-新闻列表页</title>

   <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>

   <script src="js/public/k-app-common.js"></script>

   <script src="js/vue/vue.min.js"></script>

   <script src="js/vue/vue-resource.min.js"></script>

   <link rel="stylesheet" href="css/vue-common.css">

</head>

<body>

<div id="app" class="app">

   <table>

       <tr v-for="item in list">

           <td :style="{backgroundImage:'url('+item.pic+')'}"></td>

           <td>

               <h2>{{item.title}}</h2>

               <h3>{{item.content | stripHTML}}</h3>

           </td>

           <td>

               <a :href="'detail.html?id='+item.id" target="_blank">查看详情</a>

           </td>

       </tr>

   </table>

</div>

</body>

</html>

<script src="js/news.js"></script>


js/news.js(新闻列表js文件)


let url = 'http://your_ip:your_port/api/api_name';

new Vue({

   el: '#app',

   data: {

       list: [],

   },

   created: function () {

       this.init();

   },

   methods: {

       init: function () {

           this.$http.post(url, {start: 0, count: 6}, {emulateJSON: true}).then(function (r) {

               this.list = r.body.data;

           }, function () {

               alert('接口请求失败!');

           });

       }

   },

   filters: {

       stripHTML: function (c) {

           return c.stripHTML().substring(0, 30) + "...";

       }

   }

});


detail.html(详情页html)


<!doctype html>

<html lang="en">

<head>

   <meta charset="UTF-8">

   <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

   <meta http-equiv="X-UA-Compatible" content="ie=edge">

   <title>Vue-详情页</title>

   <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>

   <script src="js/public/k-app-common.js"></script>

   <script src="js/vue/vue.min.js"></script>

   <script src="js/vue/vue-resource.min.js"></script>

   <link rel="stylesheet" href="css/vue-common.css">

</head>

<body>

<div id="app" class="app">

   <div>

       <h1>{{title}}</h1>

       <h6>{{date|format}}</h6>

       <p v-html="content"></p>

   </div>

   <div>

       <a :href="prevHref" target="_self" :class="hasPrevLink?'hasLink':'noLink'">[上一篇] {{prevTitle}}</a><br>

       <a :href="nextHref" target="_self" :class="hasNextLink?'hasLink':'noLink'">[下一篇] {{nextTitle}}</a><br><br>

   </div>

</div>

</body>

</html>

<script src="js/detail.js"></script>


js/detail.js(详情页js)


let url = 'http://your_ip:your_port/api/api_name';

new Vue({

   el: '#app',

   data: {

       list: [],

   },

   created: function () {

       this.init();

   },

   methods: {

       init: function () {

           this.$http.post(url, {start: 0, count: 6}, {emulateJSON: true}).then(function (r) {

               this.list = r.body.data;

           }, function () {

               alert('接口请求失败!');

           });

       }

   },

   filters: {

       stripHTML: function (c) {

           return c.stripHTML().substring(0, 30) + "...";

       }

   }

});


css/vue-common.css(公用简单样式,聊胜于无,用于测试看清楚具体内容)


table tr td:first-child {

   /**背景图片*/

   width: 200px;

   height: 100px;

   /**居中填满*/

   background-repeat: no-repeat;

   background-position: center;

   background-size: cover;

}

a {

   text-decoration: none;

}

相关文章
|
20天前
Vue3框架中让table合计居中对齐
Vue3框架中让table合计居中对齐
|
1月前
|
SQL 开发框架 JavaScript
在 Vue 中进行数据持久化时,有哪些常用的数据库框架?
在 Vue 中进行数据持久化时,有哪些常用的数据库框架?
49 3
|
1月前
|
存储 安全 算法
【软件设计师备考 专题 】数据库的控制功能(并发控制、恢复、安全性、完整性)
【软件设计师备考 专题 】数据库的控制功能(并发控制、恢复、安全性、完整性)
57 0
|
4天前
|
JavaScript 索引
【vue】框架搭建
【vue】框架搭建
7 1
|
5天前
|
资源调度 JavaScript 开发者
插件使用:扩展Vue功能与第三方插件
【4月更文挑战第23天】Vue凭借其轻量级和灵活性在Web开发中备受青睐,而插件则进一步增强了其功能。本文探讨了如何在Vue项目中选择、安装、配置和管理插件,以适应不同需求。要点包括:选择可靠且兼容的插件,使用npm或yarn安装,根据文档配置,以及注意性能影响。明智使用插件能提升开发效率,但需避免过度依赖,确保与项目目标和技术栈匹配。不断学习新插件,可保持技术领先并优化项目实践。
|
15天前
|
JavaScript 前端开发 API
框架分析(3)-Vue.js
框架分析(3)-Vue.js
|
16天前
|
前端开发 JavaScript API
JavaScript待办事项列表
JavaScript待办事项列表
|
19天前
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
|
1月前
|
SQL 关系型数据库 MySQL
Mysql数据库一个表字段中存了id,并以逗号分隔,id对应的详细信息在另一个表中
Mysql数据库一个表字段中存了id,并以逗号分隔,id对应的详细信息在另一个表中
10 0
|
1月前
|
JavaScript 前端开发 算法
深入探讨前端框架Vue.js中的虚拟DOM机制
本文将深入探讨前端框架Vue.js中的虚拟DOM机制,分析其原理、优势以及在实际开发中的应用场景,帮助读者更好地理解Vue.js框架的核心特性。