前端微信分享的基本步骤: 一.绑定域名: 先登录微信公众平台进入"公众号设置"的"功能设置"里填写"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…
最近又把vue的demo拿出来整理下,正好要做"微信分享"功能,于是遇到新的问题: 由于hash模式下,带有"#",导致微信分享的签证无效:当改成history的模式后,分享ok: 但是问题来了,history模式下相当操蛋: 刷新页面,页面报错404:这不是扯犊子吗?[不过这个问题,可以在后台解决,这里就不说了] assets下的img文件,引入路径失败: 对于上面的问题,我是直接不能忍啊,所以history模式是肯定不行的:我决定依旧用hash模式:histor…
1,通过后台,获取accessToken 和 签名jsApiTicket,并写入浏览器缓存(可以写在app.vue中) <script type="text/ecmascript-6"> import Store from 'common/js/store.js'; const CODE_SUC = 1; const CODE_ERR = 0; export default { name: 'app', data () { return { wxToken: { acces…
// 微信验证 export function requireConfig() { let url = window.location.href systemApi.wxoption({ url: url }).then(res => { if (res.code === 200) { wx.config({ debug: false, appId: res.data.appid, // 必填,企业号的唯一标识,此处填写企业号corpid timestamp: res.data.timestam…
我们知道vue可以快速开发web单页应用,而且官方为我们提供了自己的应用脚手架vue-cli,我们只需要下载脚手架,安装依赖后就可以启动vue应用雏形. 这得益与webpack的依赖追踪,各种资源后缀的loader,以及相关webpack插件的强大功能. 然而有些时候,我们有多页面的开发需求,在这种情况下,我们可以为多页面构建相应的多个应用,比如通过vue-cli生成多个应用目录,但是这样一方面会多出很多重复的构建代码和样板代码,另外也会破坏应用的统一性,不便于维护.我们可以在vue-cli的基…
作为一名开发人员,每次接到开发任务,我们首先应该先分析需求,然后再思考技术方案和解决方案.三思而后行,这是一个好的习惯. 需求:本项目是采用vue组件化开发的单页应用项目,现需要在项目中引入百度的地图展示功能,用于展示所有项目的分布情况.搜索功能(省略,不是这里介绍的内容)....... 交互:选中左侧的项目,选中项高亮,自动定位到右侧地图中项目所在位置,并弹出项目的基本信息.点击右侧的项目,自动高亮显示左侧的项目,并滚动到项目所在位置.地图支持聚合和缩放. 项目运行效果如下图所示: 接下来开始…
作为vue的初级使用者,在开发过程中遇到的坑太多了.在看页面的时候发现了页面滚动的问题,当一个页面滚动了,点击页面上的路由调到下一个页面时,跳转后的页面也是滚动的,滚动条并不是在页面的顶部 在我们写路由的时候做个处理,如下: import Vue from 'vue' import Router from 'vue-router' Vue.use(Router); Vue.use(Router) export default new Router({ routes: [ { path: '/',…
代码地址如下: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…
实践场景需求 产品列表中,滚动到一定位置的时候,点击查看产品信息,后退之后,需要回到原先的滚动位置,这是常见的需求 所有页面均在router-view中,暂时使用了keep-alive来缓存所有页面,所以进入不同分类的产品列表,和不同的产品详情页面,需要更新数据 首先注意: 本次实践测试环境为pc端的webkit内核浏览器,手机暂时不测试 使用$router.back(-1) 和浏览器后退按钮效果一样 必须使用keep-alive缓存路由页面才能记住上次的位置,否则使用浏览器后退或$router…
微信分享功能给我们带来了很大的便利,使得基于微信开发出来的 H5 页面可以很好的通过微信平台进行传播.所以呢,基本上每个基于微信开发的 H5 都会集成微信分享功能.但是,前几天在对接微信分享 API 的时候发现了一个大坑.使用 vue 框架开发的应用,分享出去的链接会被截断: 正常链接:https://hxkj.vip/#/article?article_id=8 分享出去的链接被打开之后变成了:https://hxkj.vip/?from=singlemessage&isappinstalle…
若文章中存在内容无法加载的情况,请移步作者其他博客. 简书 CSDN 最近在看 Vue 的时候,别人给我安利了一个国外的小案例,通过 Vue 和 Vuex 来实现一个记事本. 仔细剖析下,发现“麻雀虽小,五脏俱全”,是一个挺适合初学者学习分析的一个案例,所以自己也将自己的学习过程整理,得出本文. 国际惯例,首先感谢原文作者. 参考案例传送门: Learn Vuex by Building a Notes App 之后是内容声明: 原文是2016年 4 月 20 日就出现了的,所以很多小伙伴可能已…
引言 前端webapp应用为了追求类似于native模式的细致体验,总是在不断的在向native的体验靠拢:比如本文即将要说到的功能,native由于是多页应用,新页面可以启用一个的新的webview来打开,后退其实是关闭当前webview,其上一个webview就自然显示出来:但是在单页的webapp应用中,所有内容其实是在一个页面中展示的,不存在多页的情况,这时就需要前端开发来想办法实现相应的体验效果. 首先需要说明一下,本文所说的前进刷新后退不刷新是指组件是否重新渲染,比如列表A页面,点击…
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 文件…
背景 随着项目的成长,单页spa逐渐包含了许多业务线 商城系统 售后系统 会员系统 ... 当项目页面超过一定数量(150+)之后,会产生一系列的问题 可扩展性 项目编译的时间(启动server,修改代码)越来越长,而每次调试关注的可能只是其中1.2个页面 需求冲突 所有的需求都定位到当前git,需求过多导致测试环境经常排队 基于以上问题有了对git进行拆分的技术需求.具体如下 目标 依然是spa 由于改善的是开发环境,当然不希望拆分项目影响用户体验.如果完全将业务线拆分成2个独立页面,那么用户…
前言 申请百度统计后,会得到一段JS代码,需要插入到每个网页中去,在Vue.js项目首先想到的可能就是,把统计代码插入到index.html入口文件中,这样就全局插入,每个页面就都有了;这样做就涉及到一个问题,Vue.js项目是单页应用,每次用户浏览网站时,访问内页时页面是不会刷新的,也就意味着不会触发百度统计代码:所以最终在百度统计后台看到的效果就是只统计到了网页入口的流量,却无法统计到内页的访问流量. 解决方法 在main.js文件中调用vue-router的afterEach方法,将统计代…
前言 申请百度统计后,会得到一段JS代码,需要插入到每个网页中去,在Vue.js项目首先想到的可能就是,把统计代码插入到index.html入口文件中,这样就全局插入,每个页面就都有了;这样做就涉及到一个问题,Vue.js项目是单页应用,每次用户浏览网站时,访问内页时页面是不会刷新的,也就意味着不会触发百度统计代码:所以最终在百度统计后台看到的效果就是只统计到了网页入口的流量,却无法统计到内页的访问流量. 解决方法 在main.js文件中调用vue-router的afterEach方法,将统计代…
目前web开发 使用一般前后端分离技术,并且前端负责路由.为了美观,会采用前端会采用h5 history 模式的路由.但刷新页面时,前端真的会按照假路由去后端寻找文件.此时,后端必须返回index(index.html)文件才不至于返回404. nginx 部署一个单页应用很简单: location / { root html; try_files $uri /index.html index.html; } root是web服务器目录,try_files 为文件匹配,先找真实的地址($uri)…
问题描述: 最近开发了一个单页应用,上线后发现页面初始加载要20s才能完成,这就很影响用户体验了,于是分析原因,发现页面加载时有个 vendor.js达到了3000多kb,于是在网上查找了一下原因,是因为我打包的时候把所有第三方依赖都打包放进去了:要怎么分离出去呢, 看下面步骤: 一.解决打包后vendor.js 很大,导致上线后页面首次加载速度异常慢: vue-cli npm run build命令默认把dependencies中的依赖统一打包,导致vendor.js文件过大,出现首屏加载过于…
问题描述: 我们知道一般的百度统计代码是添加在html的head里的:但是,因为目前项目是用vue开发的单页应用,所以在路由跳转之间不会刷新页面, 统计代码如果放在项目里的index.heml的head里,我们就只能统计到整个项目的入口流量,其它内页无法实现统计.而且目前项目需要根据 不同的业务和城市添加对应的统计代码:那么只能采取下面的方法: 实现方式: 1.封装一个全局变量文件,每个城市下面对应所有业务,每个业务对应一个方法里面放统计代码. 2.在项目入口文件里的methods内封装一个方法…
对于单页应用,要在一个页面上为用户提供产品的所有功能,在这个页面加载的时候,首先要加载大量的静态资源,这个加载时间相对比较长.所以我们需要做一些相应的优化,减少响应时间,尽快把首屏显示出来. 1.压缩代码 无论是否为单页应用,代码的压缩都是要做的. 对于vue-cli生成的项目,在Webpack配置文件中使用了UglifyJsPlugin进行代码的压缩: //webpack.prod.conf.jsplugins: [ ...... new UglifyJsPlugin({ uglifyOpti…
hash模式:在浏览器中符号“#”,#以及#后面的字符称之为hash,用 window.location.hash 读取.特点:hash虽然在URL中,但不被包括在HTTP请求中:用来指导浏览器动作,对服务端安全无用,hash不会重加载页面. history模式:history采用HTML5的新特性:且提供了两个新方法: pushState(), replaceState()可以对浏览器历史记录栈进行修改,以及popState事件的监听到状态变更.…
千辛万苦在Stack Overflow上找来的,记下吧. https://stackoverflow.com/q/31519505/13651734 我的需求是 首页:/ 项目a:/aaa 项目 b:/bbb server { listen [::]:80 default_server; listen 80; server_name localhost mydomain 127.0.0.1; root C:/manager/houchejishi; location / { alias C:/m…
前言:当前 SPA 架构流行的趋势如日中天,前后端分离的业务模式已经成为互联网开发的主流方式,但是 单页面 应用始终存在一个痛点,那就是 SEO, 对于那些需要推广,希望能在百度搜索时排名靠前的网站而言,使用单页面应用的是无法被 百度的 蜘蛛 爬到的,为此,众多流行的 MVVM 框架都推出了 很多解决方案,有官方的也有三方的,VUE也不例外,本文章就来分享一下 vue-cli 结合 prerender-spa-plugin 插件这种预渲染的 SEO 优化解决方案 1,使用 vue-cli 创建一…
使用VUE开发单页项目时遇到这样的问题,mounted中使用setInterval()定时向服务器获取数据,后来跳转页面后,发现还在不停的获取数据.我以为是因为我路由用的push导致的,改成replace也是这样,后来就在博客园找到答案了,如下: http://www.cnblogs.com/zzbp/p/5834110.html 问题:(javascript)使用Vuejs + Vue-router 开发单页面,如何使得切换页面时能销毁原组件?描述: 我有一个单页面应用,有页面A和页面B,二者…
1.config index.js下面的跨域代理设置: proxyTable: { '/api': { target: 'http://xxxx', //要访问的后端接口 changeOrigin: true, pathRewrite: { '^/api': 'http://xxx' } }, }, 2.http.js(封装axios) import Vue from 'vue' import axios from 'axios' import QS from 'qs' //视情况用于不用; i…
个人见解如下: 单页面应用(SinglePage Web Application  )简称:SPA 多页面应用 (MultiPage Application) 简称:MPA 组成一个外壳和多个页面片段组成多个完整页面,构成资源共用(css,js),只需在外壳部分加载不共用,每个页面都需要加载 区别: 刷新方式 SPA:  页面局部刷新或更改 MPA: 整页刷新 url模式 SPA:  a.com/#/pageone    a.com/#/pagetwo MPA:    a.com/pageone…
如下图:   1.安装node.js webpack node -v 查看版本 webpack -v 2.安装脚手架 vue-cli npm install -g vue-cli 3. 在项目文件夹创建项目(如上图) vue init webpack-simple zbsq( ) vue init webpack zbsq( ) npm install 4.npm run dev 启动本地环境预览页面 5.npm run build 打包文件   常见问题: 1.打包把js打包在一个文件,防止白…
APICloud新建项目后,会生成以下目录结构 其中index.html是入口文件,而vue-cli打包生成的文件是在dist目录下 ├─dist│ └─static│ ├─css│ └─js │ └─index.html 把dist目录中的static文件夹和index.html复制到apicloud的项目文件中即可,覆盖原来的index.html.最终apicloud的目录结构只是比原来多了一个static目录. vue项目中需要做如下配置,config/index.js中需要把build的…