前言:当前 SPA 架构流行的趋势如日中天,前后端分离的业务模式已经成为互联网开发的主流方式,但是 单页面 应用始终存在一个痛点,那就是 SEO, 对于那些需要推广,希望能在百度搜索时排名靠前的网站而言,使用单页面应用的是无法被 百度的 蜘蛛 爬到的,为此,众多流行的 MVVM 框架都推出了 很多解决方案,有官方的也有三方的,VUE也不例外,本文章就来分享一下 vue-cli 结合 prerender-spa-plugin 插件这种预渲染的 SEO 优化解决方案 1,使用 vue-cli 创建一…
vue-meta-info 官方地址: monkeyWangs/vue-meta-info (设置vue 单页面meta info信息,如果需要单页面SEO,可以和 prerender-spa-plugin形成更优的配合) 单页面应用在前端正大放光彩.三大框架 Angular.Vue.React,可谓妇孺皆知.随着单页面应用的普及,人们在感受其带来的完美的用户体验,极强的开发效率的同时,也似乎不可避免的要去处理 SEO 的需求. 本文主要针对 vue 2.0 单页面 Meta SEO 优化展开介…
前言 看到标题的人肯定会问,seo-mask是什么,为什么可以解决单页应用seo无法被收录的难题呢? 简单来讲seo-mask做的就是为已经发布线上运营的的单页应用项目建立另一个简单的利于seo的镜像网站,使搜索引擎能够爬取到不同路径下对应的内容,无需改造现有代码. 关于seo-mask的解释及同样能解决单页应用seo问题的其他方法的对比都在<seo-mask -- 为单页应用创建一个适合蜘蛛爬取的seo网站> 里,这里我就不多赘述了. 使用前 使用seo-mask之前我的网站是只能搜到一点T…
处理 Vue 单页面应用 SEO 的另一种思路 - muwoo - 博客园 https://www.cnblogs.com/tiedaweishao/p/7493971.html SPA网站SEO完美解决方案 - 简书 https://www.jianshu.com/p/6be9424a358d 入口机器Nginx server { listen 80; server_name www.abc.com ; location / { proxy_set_header Host $host:$pro…
由于在vue单页应用中title只设定在入口文件index.html,如果切换路由,title怎么更换? 在路由router中设置meta: { path:'/chooseBrand', component: resolve => require(['../components/page/myzone.vue'], resolve), meta: { title: 'title标题' } 在main.js里面加上 router.beforeEach((to, from, next) => {…
作为一名开发人员,每次接到开发任务,我们首先应该先分析需求,然后再思考技术方案和解决方案.三思而后行,这是一个好的习惯. 需求:本项目是采用vue组件化开发的单页应用项目,现需要在项目中引入百度的地图展示功能,用于展示所有项目的分布情况.搜索功能(省略,不是这里介绍的内容)....... 交互:选中左侧的项目,选中项高亮,自动定位到右侧地图中项目所在位置,并弹出项目的基本信息.点击右侧的项目,自动高亮显示左侧的项目,并滚动到项目所在位置.地图支持聚合和缩放. 项目运行效果如下图所示: 接下来开始…
作为vue的初级使用者,在开发过程中遇到的坑太多了.在看页面的时候发现了页面滚动的问题,当一个页面滚动了,点击页面上的路由调到下一个页面时,跳转后的页面也是滚动的,滚动条并不是在页面的顶部 在我们写路由的时候做个处理,如下: import Vue from 'vue' import Router from 'vue-router' Vue.use(Router); Vue.use(Router) export default new Router({ routes: [ { path: '/',…
实践场景需求 产品列表中,滚动到一定位置的时候,点击查看产品信息,后退之后,需要回到原先的滚动位置,这是常见的需求 所有页面均在router-view中,暂时使用了keep-alive来缓存所有页面,所以进入不同分类的产品列表,和不同的产品详情页面,需要更新数据 首先注意: 本次实践测试环境为pc端的webkit内核浏览器,手机暂时不测试 使用$router.back(-1) 和浏览器后退按钮效果一样 必须使用keep-alive缓存路由页面才能记住上次的位置,否则使用浏览器后退或$router…
分享一款基于html5海贼王单页视差滚动特效是一款流行滑落网页特效代码.效果图如下: 在线预览   源码下载 实现的代码: <div class="top"> <div class="top_main center"> <ul id="scene" class="scene"> <li class="layer" data-depth="0.10"…
代码地址如下:http://www.demodashi.com/demo/13374.html 目录结构 src目录 主要的代码目录 components 存放项目组件 router 路由文件 store store文件 main.js 最终被打包到build文件 statics 静态文件 idnex.html 项目入口文件 webpack.config.js webpack配置文件 主要代码 入口index.html文件 <!DOCTYPE html> <html> <he…
vue 单页应用中微信支付的坑 标签(空格分隔): 微信 支付 坑 vue 场景 在微信H5页面(使用 vue-router2 控制路由的 vue2 单页应用项目)中使用微信 jssdk 进行微信支付. 基本知识 1.依据微信jssdk官方文档,使用微信功能的页面,必须进行微信 config,并在wx ready 之后再调用微信功能. 2.进行微信支付的话,需要在微信开放平台配置微信支付合法路径.该合法路径有层级限制,比如需要支付的页面的url为 https://example.com/redp…
基于node npm & vue-cli & element UI创建vue单页应用 开发环境   Win 10   node-v10.15.3-x64.msi 下载地址: https://nodejs.org/en/ 安装node 安装vue-cli 1.安装node-v10.15.3-x64.msi 2.设置注册地址 因为npm官方仓库在国外,有时候下载速度会非常慢,不过有淘宝镜像可以使用,下载包的速度很快.而且淘宝镜像是定时更新同步npm的官方仓库的. npm config set…
问题描述: 最近开发了一个单页应用,上线后发现页面初始加载要20s才能完成,这就很影响用户体验了,于是分析原因,发现页面加载时有个 vendor.js达到了3000多kb,于是在网上查找了一下原因,是因为我打包的时候把所有第三方依赖都打包放进去了:要怎么分离出去呢, 看下面步骤: 一.解决打包后vendor.js 很大,导致上线后页面首次加载速度异常慢: vue-cli npm run build命令默认把dependencies中的依赖统一打包,导致vendor.js文件过大,出现首屏加载过于…
对于单页应用,要在一个页面上为用户提供产品的所有功能,在这个页面加载的时候,首先要加载大量的静态资源,这个加载时间相对比较长.所以我们需要做一些相应的优化,减少响应时间,尽快把首屏显示出来. 1.压缩代码 无论是否为单页应用,代码的压缩都是要做的. 对于vue-cli生成的项目,在Webpack配置文件中使用了UglifyJsPlugin进行代码的压缩: //webpack.prod.conf.jsplugins: [ ...... new UglifyJsPlugin({ uglifyOpti…
公司使用angularJs(以下都是指ng1)框架做了互联网应用,之前没接触过seo,突然一天运营那边传来任务:要给网站做搜索引擎优化,需要研发支持.搜了下发现单页面应用做seo比较费劲,国内相关实践资料分享出来的也比较少,略懵,前后花了一番功夫总算完成了.在这里记录下来,做一个总结,也希望能够帮助在做类似工作的朋友少走一点弯路.还是建议需要seo的网站技术选型尽量不要使用angular react一类的单页面框架.如果你和我一样网站做完了发现需要seo,那么往下看吧.如果各位已有更优的方案欢迎…
vue新人,没有高级技巧 本文主要总结了使用vue-cli脚手架安装开发环境,使用vue.js等进行单页应用开发所遇问题的总结. 技术栈: Vue v1.0.21, vue-resource v0.91, vue-router v0.7.13,webpack v1.12.2,vue-cli 开发中注意所使用的库的版本! 项目中问题总结: 一:ESlint验证相关报错 ESlint中默认没有alert.使用 "===" 作为比较.不使用双引号等. 但是可以在.eslintrc.js 文件…
前端微信分享的基本步骤: 一.绑定域名: 先登录微信公众平台进入"公众号设置"的"功能设置"里填写"JS接口安全域名".这个不多说,微信开发的都应该清楚. 二.引入js文件: 在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.0.0.js.请注意,如果你的页面启用了https,务必引入 https://res.wx.qq.com/open/js/jweixi…
引言 前端webapp应用为了追求类似于native模式的细致体验,总是在不断的在向native的体验靠拢:比如本文即将要说到的功能,native由于是多页应用,新页面可以启用一个的新的webview来打开,后退其实是关闭当前webview,其上一个webview就自然显示出来:但是在单页的webapp应用中,所有内容其实是在一个页面中展示的,不存在多页的情况,这时就需要前端开发来想办法实现相应的体验效果. 首先需要说明一下,本文所说的前进刷新后退不刷新是指组件是否重新渲染,比如列表A页面,点击…
前言 申请百度统计后,会得到一段JS代码,需要插入到每个网页中去,在Vue.js项目首先想到的可能就是,把统计代码插入到index.html入口文件中,这样就全局插入,每个页面就都有了;这样做就涉及到一个问题,Vue.js项目是单页应用,每次用户浏览网站时,访问内页时页面是不会刷新的,也就意味着不会触发百度统计代码:所以最终在百度统计后台看到的效果就是只统计到了网页入口的流量,却无法统计到内页的访问流量. 解决方法 在main.js文件中调用vue-router的afterEach方法,将统计代…
设置vue 单页面meta info信息 vue-meta-info,(https://github.com/muwoo/vue-meta-info)如果需要单页面SEO,可以和 prerender-spa-plugin(https://github.com/chrisvfritz/prerender-spa-plugin)形成更优的配合 更多使用介绍:https://zhuanlan.zhihu.com/p/29148760?group_id=890298677627879424…
前言 申请百度统计后,会得到一段JS代码,需要插入到每个网页中去,在Vue.js项目首先想到的可能就是,把统计代码插入到index.html入口文件中,这样就全局插入,每个页面就都有了;这样做就涉及到一个问题,Vue.js项目是单页应用,每次用户浏览网站时,访问内页时页面是不会刷新的,也就意味着不会触发百度统计代码:所以最终在百度统计后台看到的效果就是只统计到了网页入口的流量,却无法统计到内页的访问流量. 解决方法 在main.js文件中调用vue-router的afterEach方法,将统计代…
vue spn如何做seo优化 突然来了一个需求,对已有的项目做SEO优化,WHAT? 总所周知,spn对seo不够优化,因而官方考虑到直接使用ssr 一个不算解决办法的办法prerender-spa-plugin // build/webpack.prod.conf.js const PrerenderSPAPlugin = require('prerender-spa-plugin') const Renderer = PrerenderSPAPlugin.PuppeteerRenderer…
若文章中存在内容无法加载的情况,请移步作者其他博客. 简书 CSDN 最近在看 Vue 的时候,别人给我安利了一个国外的小案例,通过 Vue 和 Vuex 来实现一个记事本. 仔细剖析下,发现“麻雀虽小,五脏俱全”,是一个挺适合初学者学习分析的一个案例,所以自己也将自己的学习过程整理,得出本文. 国际惯例,首先感谢原文作者. 参考案例传送门: Learn Vuex by Building a Notes App 之后是内容声明: 原文是2016年 4 月 20 日就出现了的,所以很多小伙伴可能已…
参考文档 vue骨架屏 https://blog.csdn.net/ly124100427/article/details/81168908 vue seo优化 1.SSR服务器渲染: 2.静态化: 3.预渲染prerender-spa-plugin: 4.使用Phantomjs针对爬虫做处理. 参考文档:https://segmentfault.com/a/1190000019623624…
背景 随着项目的成长,单页spa逐渐包含了许多业务线 商城系统 售后系统 会员系统 ... 当项目页面超过一定数量(150+)之后,会产生一系列的问题 可扩展性 项目编译的时间(启动server,修改代码)越来越长,而每次调试关注的可能只是其中1.2个页面 需求冲突 所有的需求都定位到当前git,需求过多导致测试环境经常排队 基于以上问题有了对git进行拆分的技术需求.具体如下 目标 依然是spa 由于改善的是开发环境,当然不希望拆分项目影响用户体验.如果完全将业务线拆分成2个独立页面,那么用户…
问题描述: 我们知道一般的百度统计代码是添加在html的head里的:但是,因为目前项目是用vue开发的单页应用,所以在路由跳转之间不会刷新页面, 统计代码如果放在项目里的index.heml的head里,我们就只能统计到整个项目的入口流量,其它内页无法实现统计.而且目前项目需要根据 不同的业务和城市添加对应的统计代码:那么只能采取下面的方法: 实现方式: 1.封装一个全局变量文件,每个城市下面对应所有业务,每个业务对应一个方法里面放统计代码. 2.在项目入口文件里的methods内封装一个方法…
在这里只会提到Google的解决方案,日后再补充百度的解决方案 我们经常使用的单页都是#!来做应用的前端路由,因为这个在多个版本浏览器上有很好的兼容性 当Google发现URL里有#!符号,Google会把 #! 替换成 ?_escaped_fragment_= ,然后继续抓取链接的内容. 例如example.com/#!/detail/1,于是Google开始抓取example.com/?_escaped_fragment_=/detail/1:…
一.背景:页面为何会卡? 1.1 等待时间长(性能) 项目本身包/第三方脚本比较大. JavaScript 执行阻塞页面加载. 图片体积大且多. 特别是对于首屏资源加载中的白屏时间,用户等待的时间就越长,用户感知到页面的速度就越慢.麻省理工学院的 Richard Larson 在讲话中指出,"人类将被动等待高估了 36%"(https://mazey.cn/t/em).这意味着用户感觉到的等待时间比开发工具记录的长得多. 1.2 看起来卡(体验) 页面结构不断调整,不连贯.抖动的页面往…
个人见解如下: 单页面应用(SinglePage Web Application  )简称:SPA 多页面应用 (MultiPage Application) 简称:MPA 组成一个外壳和多个页面片段组成多个完整页面,构成资源共用(css,js),只需在外壳部分加载不共用,每个页面都需要加载 区别: 刷新方式 SPA:  页面局部刷新或更改 MPA: 整页刷新 url模式 SPA:  a.com/#/pageone    a.com/#/pagetwo MPA:    a.com/pageone…
转载自:https://blog.csdn.net/qq_42221334/article/details/81907901这是之前在公司oa项目优化时罗列的优化点,基本都已经完成,当时花了点心思整理的,保存在这里,方便以后其他项目用到查漏补缺. 1.打包文件中的app.js文件放入cdn,加快页面首次加载速度 2.提取公共方法,减少js代码量 3.提取公共组件,将统计分析的售前和售后,客户分配,客户管理,客服管理等页面的搜索条件模块化,减少了html代码量,减少了每个页面中都有的重复方法.4.…