继续上一篇文章的内容,本文主要内容为项目中新闻资讯模块的实现。

新闻资讯页面主要是当我们点击这个按钮时跳转到新闻列表界面。

一、新闻资讯的路由设计

将新闻资讯的标签改为路由:(a标签改为router-link)。

home.vue

<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-4">
<router-link to="/home/newsList">
<span class="mui-icon mui-icon-extra mui-icon-extra-new"></span>
<div class="mui-media-body">News</div>
</router-link>
</li>

然后新建一个news.vue单文件组件用于显示新闻列表,并配置到router.js文件中。

二、新闻资讯的页面设计

1、搭建Node服务器用于返回我们需要的页面数据

现在我们的新闻资讯页面时写死的,实际的场景应该是从后台服务器中动态获取,我们可以自己编写一个简单的Node搭建的本地服务器用于满足我们的基本页面数据需求。

这个Node+Express简单搭建的服务器已上传至github,可自行下载运行,运行前先npm install一下。然后就可以使用了。点击这里访问

值得注意的问题:

  • 由于是项目本身和服务器是两个不同的域名,存在跨域问题。可使用jsonp的方式进行数据传输,也可以设置header来允许跨域访问:

    res.header('Access-Control-Allow-Origin', '*');
  • 使用的是vue-resource获取数据。

其他细节问题代码中均有注释,这里不再赘述。

2、其它问题

  • 全局配置Vue.http.options.root

    设置请求的根路径,但是注意请求时路径的写法,如:

    //错误的写法:如果这样写请求的根路径为当前域名
    this.$http.get('/getNewsList').then( result => { })
    //正确的写法
    this.$http.get('getNewsList/').then( result => { })
  • scoped配置下的style有时候无法产生效果,就算加上!important标识也无法正常渲染,所以我们常常不再使用scoped属性,但这样容易污染全局样式,所以我们需要模仿scoped属性的实现原理,手动为组件根元素命名一个类作为标识,然后样式都在改标志下进行全局渲染即可。例如新闻详情页的组件代码如下:

    //在根元素增加一个newsInfo类名作为标识
    <div class="newsInfo">
    <h3 class="title"> {{newsInfo.title}} </h3>
    <p class="subtitle">
    <span>发表时间:{{newsInfo.createTime}}</span>
    <span>浏览量:{{newsInfo.views}}</span>
    </p>
    <hr />
    <div class="content" v-html="newsInfoHtml">
    fsafs
    fasfdsdafsadf
    sadf
    </div>
    </div>

    然后我们的css属性就可以改为全局样式而不用顾虑污染的情况。

    这里我们可以使用scss语法进行样式书写,更为清晰(需要安装scss对应的loader并配置,请参考这里):

    <style lang="scss">
    .newsInfo{
    .title {
    text-align: center;
    color: #d02121;
    }
    .subtitle{
    color: #03A9F4;
    display: flex;
    justify-content: space-between;
    padding: 5px;
    }
    .content{
    padding: 5px;
    }
    img {
    width: 100%;
    }
    .error {
    color: #FF1313;
    }
    }
    </style>

3、效果一览





Vue(day8)的更多相关文章

  1. vue day8 table page

    @{ ViewBag.Title = "Home Page"; Layout = null; } <!DOCTYPE html> <html> <he ...

  2. Vue入门到精通

    Vue.js - Day1 课程介绍 前5天: 都在学习Vue基本的语法和概念:打包工具 Webpack , Gulp 后5天: 以项目驱动教学: 什么是Vue.js Vue.js 是目前最火的一个前 ...

  3. Vue.js 和 MVVM 小细节

    MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...

  4. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  5. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  6. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  7. Vue + Webpack + Vue-loader 系列教程(2)相关配置篇

    原文地址:https://lvyongbo.gitbooks.io/vue-loader/content/ 使用预处理器 在 Webpack 中,所有的预处理器需要和一个相应的加载器一同使用.vue- ...

  8. Vue + Webpack + Vue-loader 系列教程(1)功能介绍篇

    原文地址:https://lvyongbo.gitbooks.io/vue-loader/content/ Vue-loader 是什么? vue-loader 是一个加载器,能把如下格式的 Vue ...

  9. 关于Vue.js 2.0 的 Vuex 2.0,你需要更新的知识库

    应用结构 实际上,Vuex 在怎么组织你的代码结构上面没有任何限制,相反,它强制规定了一系列高级的原则: 应用级的状态集中放在 store 中. 改变状态的唯一方式是提交mutations,这是个同步 ...

随机推荐

  1. aliyun oss操作汇总

    // endpoint以杭州为例,其它region请按实际情况填写 String endpoint = "http://oss-cn-hangzhou.aliyuncs.com"; ...

  2. jQuery学习之旅 Item2 选择器【二】

    这里接着上一个Item1 把jQuery的选择器讲完.主要有:属性过滤器和子元素过滤器 点击"名称"会跳转到此方法的jQuery官方说明文档. 5. 属性过滤器 Attribute ...

  3. jQuery学习之旅 Item1 选择器【一】

    点击"名称"会跳转到此方法的jQuery官方说明文档. 1. 基础选择器 Basics 名称 说明 举例 #id 根据元素Id选择 $("divId") 选择I ...

  4. 4.app是怎么炼成的

    很多刚进入app后端的小伙伴,有的是之前没有接触过这个行业,有的是只在学校学习了基本的技术知识,不知道开发app的整个流程是怎么样的,因此心里会有一股恐惧.听着别人口中的一大串app相关的术语,也不知 ...

  5. 【BZOJ】1969: [Ahoi2005]LANE 航线规划

    题目链接: 传送~~ 题解:  老夫实在是码不动了…… 正着搞显然不好做,尝试倒着乱搞.先给被删除的边标记一个时间戳,先删除的时间戳大,同时维护询问时间戳,询问早的时间戳大.没被删除过的边时间戳都是0 ...

  6. 【codeforces 516B】Drazil and Tiles

    题目链接: http://codeforces.com/problemset/problem/516/B 题解: 首先可以得到一个以‘.’为点的无向图,当存在一个点没有边时,无解.然后如果这个图边双联 ...

  7. Python数据结构应用4——搜索(search)

    Search是数据结构中最基础的应用之一了,在python中,search有一个非常简单的方法如下: 15 in [3,5,4,1,76] False 不过这只是search的一种形式,下面列出多种形 ...

  8. Jmeter----A接口response中body的某一个参数传递给B接口request的body中使用(参数的传递)

    示例:将接口"获取待办列表"response中body的id值传递给接口"删除待办"request的body中使用: 操作步骤如下: 第一步:给"获取 ...

  9. java基础系列之ConcurrentHashMap源码分析(基于jdk1.8)

    1.前提 在阅读这篇博客之前,希望你对HashMap已经是有所理解的,否则可以参考这篇博客: jdk1.8源码分析-hashMap:另外你对java的cas操作也是有一定了解的,因为在这个类中大量使用 ...

  10. Java实现大批量数据导入导出(100W以上) -(一)导入

    最近业务方有一个需求,需要一次导入超过100万数据到系统数据库.可能大家首先会想,这么大的数据,干嘛通过程序去实现导入,为什么不直接通过SQL导入到数据库. 大数据量报表导出请参考:Java实现大批量 ...