vue仿今日头条(代码片段)

jlfw jlfw     2022-12-15     404

关键词:

vue 仿今日头条

为了增加移动端项目的经验,近一周通过 vue 仿写今日头条,以下就项目实现过程中遇到的问题以及解决方法给出总结,有什么不正确的地方,恳请大家批评指正^?_?^!,代码仓库地址为 github

一、实现功能

  • 首页展示
  • 查看消息
  • 图文懒加载
  • 滑动选项卡,切换频道,点击频道切换不同新闻
  • 点击选项卡的 + 按钮,实现频道的添加和删除
  • 点击搜索按钮,输入关键字,回车进行实时搜索,在结果中高亮显示关键字
  • 点击导航栏的刷新按钮只实现了按钮的旋转特效,并没有实现页面刷新加载功能

二、功能小结

2.1 选项卡封装为一个组件,滑动选项卡效果如下:

技术图片

使用弹性布局,部分代码实现如下:

 <ul class="silder-list">
    <li v-for="(item,index) in tabArr"  @click="changeTab(index,item)" :class="‘current‘:  currentIndex === index" :key="item.id">item.title</li>
 </ul>

<style>
.silder-list
    width: 6.67rem;
    height: .72rem;
    padding: .1rem .1rem;
    box-sizing: border-box;
    overflow-x: scroll;
    list-style: none;
    display: -webkit-box;

.silder-list li
    width: .68rem;
    height: .52rem;
    font-size: .34rem;
    padding: 0rem .24rem;
    color: #505050bf;

</style>
 2.2 问题:img 横向排列设置 display:inline-block时,有默认的间隙
     解决办法: 父元素添加 font-size:0;
 2.3 问题:vue 入口文件 main.js 引入 vuex 的 store 时不起作用
     解决办法: store 不可以大写
 2.4 问题:移动端通过控制根元素的 font-size 值实现设备的适配时,块级元素始终有默认的宽度
     解决办法: 我的理解是因为根元素始终有 font-size 的值,块级元素继承了font-size,所以给它重新设置font-size就可以改变元素的高度。
 2.5 问题:点击元素,该元素360°旋转
     解决办法: 
     类rotate实现旋转动画
     <img src="../assets/img/refresh.png" class="rotate"/>
     
      .rotate 
          -webkit-transform-style: preserve-3d;
          -webkit-animation: x-spin 0.7s linear;
        
        @-webkit-keyframes x-spin 
          0% 
            -webkit-transform: rotateZ(0deg);
          
          50% 
            -webkit-transform: rotateZ(180deg);
          
          100% 
            -webkit-transform: rotateZ(360deg);
          
        
     
 2.7 问题:组件按需加载(其他方法见参考文献)
         解决办法: 
           
                path: ‘/promisedemo‘,
                name: ‘PromiseDemo‘,
                component: resolve => require([‘../components/PromiseDemo‘], resolve)
            
 2.8 问题:基于 vue 的实时搜索,在结果中高亮显示关键字
     解决办法:
     万能的```replace```函数, searchKey 为关键字
     title = title.replace(this.searchKey, `<span style="color: red;font-weight: 500;">$this.searchKey</span>`)
 2.8 问题:基于 vue 的实时搜索,在结果中高亮显示关键字
     解决办法:
     万能的```replace```函数, searchKey 为关键字
     title = title.replace(this.searchKey, `<span style="color: red;font-weight: 500;">$this.searchKey</span>`)
 2.9 问题:解决安卓平台下,input标签被遮挡问题,用户点击 input 时,父级元素上移,其他元素不变。在 ios 下没有该问题。
     解决办法:
     css部分:
        body
            width:100%;
            height:100%;
            overflow:scrool;
         
        .container
            width: 100%;
            height: (这里随意,需要用js设定);
            position: absolute;
            top: 0;
            
        js部分:
        var winHeight = document.documentElement.clientHeight;
        $(‘.container‘).css(‘height‘,winHeight+‘px‘);
  2.10 问题: 懒加载
       解决方法:稍后补充

参考文献

https://segmentfault.com/a/11... 组件按需加载
https://router.vuejs.org/zh/g... 路由懒加载
https://segmentfault.com/a/11... 项目中使用 webpack 将多个组件合并打包并实现按需加载


仿今日头条实时新闻微信小程序项目源码(代码片段)

微信公众号:创享日记发送:今日头条获取完整源码(微信开发者工具导入即可用)以下可以忽略不看!今日头条是北京字节跳动科技有限公司开发的一款基于数据挖掘的推荐引擎产品,为用户推荐信息、... 查看详情

仿今日头条app手机端顶部触屏滑动导航(代码片段)

swiper.js<!DOCTYPEhtml><htmllang="en"><head><metacharset="utf-8"><metaname="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0">< 查看详情

仿今日头条按钮loading效果

效果代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-equiv="X-UA-Compatible"conten 查看详情

仿今日头条滑动导航栏

<!DOCTYPEhtml><html><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><title>今日头条APP顶部点击可居中导航</title><metaname="viewport"content="width=devi 查看详情

新闻网站电脑版带手机版源码,仿东方头条,今日头条,搜狐自媒体网站帝国cms定制

专业定制新闻网站,仿东方头条,今日头条,搜狐自媒体网站源码开发,支持二级域名显示,新闻资讯聚合的头条新闻资讯,内容包括今日头条、头条新闻、社会热点、国内国际快讯、军事、明星、八卦、娱乐、时尚、体育等各... 查看详情

自适应tab宽度可以滑动文字逐渐变色的tablayout(仿今日头条顶部导航)

...TabLayout,它可以配合ViewPager完成很好的效果。一种类似于今日头条指示器,根据ViewPager的页面滑动,文字逐渐变色。今日头条的顶部tab导航效果的实现,我们一般会用RadioGroup+Fragment+ViewPag 查看详情

android仿今日头条频道管理(下)(gridview之间item的移动和拖拽)

前言上篇博客我们说到了今日头条频道管理的操作交互体验,我也介绍了2个GridView之间Item的相互移动。详情请參考:Android仿今日头条频道管理(上)(GridView之间Item的移动和拖拽)今天把相对照较复杂的gridView的拖拽也记录下... 查看详情

今日头条marketingapi小工具(.netcore版本)(代码片段)

前言  由于工作原因,需要用到今日头条的MarketingAPI做一些广告投放的定制化开发。然后看现在网上也没多少关于头条MarketingAPI的文章,于是便就有了该篇文章。  头条MarketingAPI主页地址:https://ad.toutiao.com/openapi/index.html。... 查看详情

微信小程序-今日头条案例

github地址:  https://github.com/HowName/toutiao项目为仿今日头条,使用了百度ApiStore接口查询数据,使用微信组件/api有封装请求方法,底部tab,启动页动画,loading,scroll-view,swiper,列表页支持上下拉加载更多效果图: 启动欢迎页,几行代... 查看详情

今日头条街拍图片爬取(代码片段)

importreimportrequestsimportosfromurllibimportrequestimportjsonfrommysql_tuimportmysql_connheaders=‘user-agent‘:‘Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/67.0.3396.99 查看详情

爬虫(猫眼电影+校花网+github+今日头条+拉钩)(代码片段)

 Requests+正则表达式爬取猫眼TOP100榜电影信息MARK:将信息写入文件解决乱码方法,开启进程池秒爬。123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051import requestsfrom requests.except 查看详情

递归爬取今日头条指定用户一个月内发表的所有文章,视频,微头条(代码片段)

最近找工作,爬虫面试的一个面试题。涉及的反爬还是比较全面的,结果公司要求高,要解决视频链接时效性问题,凉凉。直接上代码importrequestsimporttimefromdatetimeimportdatetimeimportjsonimportexecjsimporthashlibimportreimportcsvfromzlibimportcrc32fr... 查看详情

2018今日头条(代码片段)

P为给定的二维平面整数点集。定义P中某点x,如果x满足P中任意点都不在x的右上方区域内(横纵坐标都大于x),则称其为“最大的”。求出所有“最大的”点的集合。(所有点的横坐标和纵坐标都不重复,坐标轴范围在[0,1e9)内)... 查看详情

今日头条ios高级工程师面试总结(代码片段)

面试形式:电话面试作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:761407670进群密码‘博客’,不管你是小白还是大牛欢迎入驻,分享BAT,阿里面试题、面试经验,讨论技术,大家一... 查看详情

今日头条笔试题--2018优先队列(代码片段)

时间限制:1秒空间限制:81920K产品经理(PM)有很多好的idea,而这些idea需要程序员实现。现在有N个PM,在某个时间会想出一个idea,每个idea有提出时间、所需时间和优先等级。对于一个PM来说,最想实现的idea首先考虑优先等级高的... 查看详情

关于今日头条小程序(字节跳动小程序)相关问题(代码片段)

上周突然遇到让开发今日头条小程序(字节跳动小程序)的需求,然后看了下文档发现真的简陋。而且文档有错别字。槽点有点多。但是和老版本的小程序相差不多,然后我就抱着试一试的心态,真的是试一试把微信小程序换了... 查看详情

android嵌套viewpager+fragment实现仿头条ui框架demo(代码片段)

1.实现效果2.核心实现 1)BaseViewPagerAdapter.javapublicclassBaseViewPagerAdapterextendsFragmentPagerAdapterprotectedViewPagermViewPager;protectedLinearLayoutmTabContainer;protectedint[]mTabResArray;protectedL 查看详情

今日头条”杯2018年湖北省赛网)(代码片段)

所有题目: http://cdn.vo-ov.cn/online_f9ec217.pdf F:A-maze-ing哇我也是哭了...dfs写错,dfs还用了vis数组,实际上并不需要,WA了N多次...呜呜呜看出来对图的基本概念还比较生疏,或者说都忘了好多,一开始还在纠结环是不是强连通... 查看详情