今天在做公交的时候没干,用手机看看文章,偶然发现了一个关于Vue优化seo的文章,我先是在Vue的官方文档看了一篇关于Vue做SEO优化的文章. 上面提到了nuxt.js这个框架,这个框架我做过一个小项目,确实是可以做服务端渲染,但是这个需要在服务器启动服务,当时我是用的docker,然后用node+nginx做了个容器,然后用pm2做进程守护. 后面我拿原来的Vue项目做了一个对比发现确实是加载速度要比原来的快很多. 后面我又发现有个预渲prerender-spa-plugin染的东西,然后早…
白驹过隙,时光荏苒 大概去年这个时候写了angular 结合webpack的一套前端方案,今年此时祭出vue2结合webpack的一套前端方案. 明年的这个时候我又是在做什么... 读在最前面: 1.本文讲述Vue,Webpack 模块化.SEO优化(Vue SSR 服务端同构直出).全浏览器兼容(ie8以上).图片轮播等案例方案        2.技术点:vue.webpack.es6.vue-server-renderer.sass.autoprefixer.vue-meta.axios 3…
http://mgyongyosi.com/2016/Vuejs-server-side-rendering-with-aspnet-core/ 原作者:Mihály Gyöngyösi 译者:oopsguy.com 我真的很喜欢在前端使用 Vue.js,Vue 服务端渲染直到第二个版本才被支持. 在本例中,我想展示如何将 Vue.js  服务端渲染功能整合 ASP.NET Core. 我们在服务端使用了 Microsoft.AspNetCore.SpaServices 包,该包提供 ASP.N…
利用WebUploader插件上传图片文件完整前端示例demo,服务端使用SpringMVC接收 Webuploader简介   WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用原来的FLASH运行时,兼容IE6+,iOS 6+, android 4+.两套运行时,同样的调用方式,可供用户任意选用. 采用大文件分片并发上传,极大的提高了文…
Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用 一丶Http协议 http协议简介       超文本传输协议(hyper Text Transfer Protocol :HTTP),是一种用于分布式,协作式和超媒体信息系统的应用层协议…
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单. Taurus.MVC 微服务框架 入门开发教程:项目集成:1.服务端:注册中心.网关(提供可运行程序下载). Taurus.MVC 微服务框架 入门开发教程:项目集成:2.客户端:ASP.NET(C#)编程语言项目集成:应用中心. Taurus.MVC 微服务框架 入门开发教程:项目集成:3.客…
一.项目优化策略 1.生成打包报告 2.第三方库启用CDN 3.Element-ui组件按需加载 4.首页内容定制 5.路由懒加载 1.生成打包报告 1.1通过vue-cli的UI面板直接查看 1.2通过命令行参数生成报告 // 生成report.html分析报告 vue-cli-service build --report 2.修改webpack配置 https://cli.vuejs.org/zh/config/#vue-config-js 如果有修改webpack默认配置的需求,可以在项目…
Vue项目部署上线后经常会发现首屏加载的速度特别慢:那么有那写能做的简单优化呢 一.路由的懒加载 路由懒加载也就是 把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件. 结合 Vue 的异步组件和 Webpack 的代码分割功能,轻松实现路由组件的懒加载. 在router中,我们平时是这样引入组件的: import Foo from './Foo.vue' 文档中指出,如下定义一个能够被 Webpack 自动代码分割的异步组件 const Foo = () => imp…
使用vue-cli构建的vue项目,在打包发布的时候,发现打包后的文件体积很大,使用webpack-bundle-analyzer分析后,发现占用空间最多的是引用的第三方依赖.第三方的依赖文件可以使用cdn外链的方式引入,这样就能大大缩小项目文件的体积.预防cdn链接失效,无缝切换本地文件 具体实现(以我个人项目为例)我的项目中引入了以下模块vue vue-router vuex axios moment highlight.js. 引入cdn文件我使用的是bootcdn其中moment.js需…
https://www.w3cplus.com/mobile/vw-layout-in-vue.html 有关于移动端的适配布局一直以来都是众说纷纭,对应的解决方案也是有很多种.在<使用Flexible实现手淘H5页面的终端适配>提出了Flexible的布局方案,随着viewport单位越来越受到众多浏览器的支持,因此在<再聊移动端页面的适配>一文中提出了vw来做移动端的适配问题.到目前为止不管是哪一种方案,都还存在一定的缺陷.言外之意,还没有哪一个方案是完美的. 事实上真的不完美…
有关于移动端的适配布局一直以来都是众说纷纭,对应的解决方案也是有很多种.在<使用Flexible实现手淘H5页面的终端适配>提出了Flexible的布局方案,随着viewport单位越来越受到众多浏览器的支持,因此在<再聊移动端页面的适配>一文中提出了vw来做移动端的适配问题.到目前为止不管是哪一种方案,都还存在一定的缺陷.言外之意,还没有哪一个方案是完美的. 事实上真的不完美?其实不然.最近为了新项目中能更完美的使用vw来做移动端的适配.探讨出一种能解决不兼容viewport单位…
有关于移动端的适配布局一直以来都是众说纷纭,对应的解决方案也是有很多种.在<使用Flexible实现手淘H5页面的终端适配>提出了Flexible的布局方案,随着viewport单位越来越受到众多浏览器的支持,因此在<再聊移动端页面的适配>一文中提出了vw来做移动端的适配问题.到目前为止不管是哪一种方案,都还存在一定的缺陷.言外之意,还没有哪一个方案是完美的. 事实上真的不完美?其实不然.最近为了新项目中能更完美的使用vw来做移动端的适配.探讨出一种能解决不兼容viewport单位…
我们在vue移动端项目中的适配一般都采用rem,但是rem也不是能兼容所有的终端. 随着viewport单位越来越受到众多浏览器的支持,下面将简单介绍怎么实现vw的兼容问题,用vw代替rem 当我们采用vue-cli脚手架搭建完项目,安装所有依赖包之后,用npm run dev启动后,在根目录有一个 .postcssrc.js 文件,文件结构如下: vue-cli默认已经安装以上三个插件: postcss-import:相关配置可以点击这里.主要功有是解决@import引入路径问题.使用这个插件…
有关于移动端的适配布局一直以来都是众说纷纭,对应的解决方案也是有很多种.在< 使用Flexible实现手淘H5页面的终端适配>提出了Flexible的布局方案,随着 viewport 单位越来越受到众多浏览器的支持,因此在< 再聊移动端页面的适配>一文中提出了vw 来做移动端的适配问题.到目前为止不管是哪一种方案,都还存在一定的缺陷.言外之意,还没有哪一个方案是完美的. 事实上真的不完美?其实不然.最近为了新项目中能更完美的使用 vw 来做移动端的适配.探讨出一种能解决不兼容 vi…
1.先在vue项目中安装crypto-js 2.在项目中新建一个utils.js文件 3.utils.js文件中的内容 /** * 工具类 */ import Vue from 'vue' import CryptoJS from 'crypto-js' export default {//加密 encrypt(word, keyStr){ keyStr = keyStr ? keyStr : 'abcdefgabcdefg12'; var key = CryptoJS.enc.Utf8.par…
一.首先我们先了解一下websocket的使用: 1.创建websocket const ws = new WebSocket("ws://192.168.31.136:9998/ws"); 2.已连接上,使用 send() 方法发送用户信息给后端 ws.onopen = ()=>{  ws.send("发送数据"); } 3.收到消息 ws.onmessage=(evt)=>{ var received_msg = evt.data; } 4.连接断开…
nuxt-cnode 基于vue的nuxt框架仿的cnode社区服务端渲染,主要是为了seo优化以及首屏加载速度 线上地址 http://nuxt-cnode.foreversnsd.cngithub地址 https://github.com/Kim09AI/nu... 技术栈 vue vue-router vuex nuxt axios simplemde ES6/7 stylus 目录结构 ├─npm-shrinkwrap.json ├─nuxt.config.js # nuxt配置文件 ├…
对于客户端应用来说,服务端渲染是一个热门话题.然而不幸的是,这并不是一件容易的事,尤其是对于不用 Node.js 环境开发的人来说. 我发布了两个库让 PHP 从服务端渲染成为可能.spatie/server-side-rendering 和 spatie/laravel-server-side-rendering适配 laravel 应用. 让我们一起来仔细研究一些服务端渲染的概念,权衡优缺点,然后遵循第一法则用 PHP 建立一个服务端渲染. 什么是服务端渲染 一个单页应用(通常也叫做 SPA…
SSR:Server Side Rendering(服务端渲染) 目的是为了解决单页面应用的 SEO 的问题,对于一般网站影响不大,但是对于论坛类,内容类网站来说是致命的,搜索引擎无法抓取页面相关内容,也就是用户搜不到此网站的相关信息. VUE基于NUXT的SSR…
require-ensure和require-amd的区别: require-amd 说明: 同AMD规范的require函数,使用时传递一个模块数组和回调函数,模块都被下载下来且都被执行后才执行回调函数 语法: require(dependencies: String[], [callback: function(...)]) 参数 dependencies: 模块依赖数组 callback: 回调函数 require-ensure 说明: require.ensure在需要的时候才下载依赖的…
一.减少打包的体积 通过vue-cli 初始化项目后,使用 npm run build 生成的JS文件往往会很大,加载时间过长导致页面长时间白屏,所以我们尽可能的使用一下方法来减少打包体积. 1.1 通过cdn 引入vue.js.vue-router 对于vue.js.vue-router.axios等静态文件来说,不需要我们去改动,就可以从cdn中引入.分两步进行: 第一步:在项目根路径的index.html中引入脚本 <script src="https://unpkg.com/vue…
1. CSS在开发模式中用import,在打包后用CDN min.js中做如下操作 if (process.env.NODE_ENV == 'development') { require('../xxx.css'); }   index.html中引入相应UI的CDN   2. 减少vendor.js的体积 #2.1 提取js到外部,减小vendor.js体积 1. 在/build/webpack.base.conf.js中,增加externals: module.exports = { ex…
const login = () =>import('@/views/login'); export default new Router({ routes:[ { path:'/login', name:'login', component:login } ] }) 看到一遍博客列举了多种方式,我常用上面这种 https://blog.csdn.net/wp_boom/article/details/78799237…
cross-env 包环境 静态文件分离 require 是置顶的 双斜杠   //baidu.com可以是http也可以是https require.ensure打包到不同的文件中 项目文件路径规范 静态文件(不需要打包的文件)放在static路径下,同时静态文件使用es5语法,css原生语法…
1, 首先判断设备:在main.js里面写 // vue原型挂载 - 是否PC端 if (/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) { Vue.prototype.$pc = false hostConfig.vconsole && new VConsole() } else { Vue.prototype.$pc = true let winWidth = document.documentEle…
传送门:  https://blog.csdn.net/zjw0742/article/details/79337336…
端口被占用,所以才会报这个错误,解决方法: 方法1:释放端口8080 方法2:换一个新端口…
出现 Cannot GET/:  控制台中并没有报错:npm run dev命令行窗口也没有报错.  原因 在网上查了一堆,发现这个问题还挺多呢,而且各个回答的解决方式都竟然有许多不同… 于是把能改的地方都改了…(基本上相当于将配置信息改回来) 关闭 history 模式 关闭history模式,用/#/路由的方式开启,(history模式要跑在服务端里面):  更改端口号 更改端口号(没改的话打开原端口号自动加上登陆次数)  config/index.js文件中修改assetsPublicPa…
初始化Nuxt.js项目步骤 1.使用脚手架工具 create-nuxt-app 创建Nuxt项目 使用yarn或者npm $ yarn create nuxt-app <项目名> 注:根据自己的实际情况初始化项目 2.添加公共的css样式文件 如果要使用 sass 就必须要安装 node-sass和sass-loader $ yarn add node-sass sass-loader -D 在assets文件夹下创建公共的scss样式文件: /assets/styles/common.sc…
第一步 创建点击对象页面元素,并绑定业务数据. <el-button type="text" size="mini" class="copy-button" :data-resource-type="scope.data.resource_type" :data-resource-id="scope.data.resource_id"> 复制链接 </el-button> 第二步 引…