利用vuecli配合vuerouter搭建一个完整的spa流程sweeeper

demo未安装依赖,下载完成,npminstall后再npmrundev运行。

利用vue-cli配合vue-router搭建一个完整的spa流程(一)

OK,正题开始,首先保证nodeJS,Git,webpack已安装完毕。打开项目文件夹,安装vue-cli。

全局安装vue-cli$npminstall--globalvue-cli

创建完成后进入项目文件夹,安装依赖$npminstall

如图所示,只会用到,src,static,index.html这三个文件。首先解释一下三个文件的作用:Ⅰ:src存放路由JS,模板.vue文件,入口JS,以及一个入口.vue文件Ⅱ:static存放静态文件Ⅲ:index入口html文件

项目文件明了之后,我们开始搭建一个简单的SPA路由构架:Ⅰ:页面中有俩个及俩个以上的分类Ⅱ:每个分类中可以点击进入到详情页面Ⅲ:URL输入错误后展示404页面Ⅳ:在页面中刷新,根据URL重新获取数据,渲染页面

文件详解:Ⅰ:src中components文件夹里新建三个xxx.vue文件,①error.vue此为404页面②showone.vue此为第一个分类页面③showtwo.vue此为第二个分类页面

Ⅱ:src中zjapp.vue这是路由入口文件

Ⅲ:static中img为详情页面大图,thumbnail为分类页面缩略图

Ⅴ:bootstrap.css样式CSS

到此路由的基本框架搭建完成,后面开始代码的填充。

作为页面入口文件,先引入Bootstrap.CSS,如果是本地文件放在static文件夹里。可以使用CDN或者npm安装。为了方便后面阅读将id="app"更改为id="index"。当然,也可以不更改,main.js中有多个为app的名字,避免混淆。

importVuefrom'vue'importAppfrom'./zjapp'importrouterfrom'./router'Vue.config.productionTip=falsenewVue({el:'#index',router,template:'',components:{App}})Vue开始渲染时,加载components:{App}组件替换生成在id="index"内的标签,那么{App}来自哪里呢?

答案在importAppfrom'./zjapp'这里是ES6语法,引入zjapp.vue模块中暴露出来的接口,后缀可以不写。

Vue实例中的router属性也是ES6中对象的字面量写法,等于router:router。同理importrouterfrom'./router'这里引入router。

因为,router中index.js暴露接口时没有署名,这里也可以改一个名字,比如:

importVuefrom'vue'importAppfrom'./zjapp'//修改名字一样可以。importchangeES6from'./router'Vue.config.productionTip=falsenewVue({el:'#index',//修改在这里router:changeES6,template:'',components:{App}})最后,可能有人会问Vue.config.productionTip=false是做什么用的,其实这里是关闭了生产模式即部署到服务器后给出的提示。

这个文件是Vue一开始渲染组件时的文件,首先贴出全部代码,很多,但是会全部讲解作用,含义。

大体分为三部个分

第一部分:

第一部分为页面中内容路由入口,其中:v-bind:router-data="allData"是对模板中传输数据用的v-bind:key="change"是页面切换动画绑定的变值,用来使页面被复用时触发切换动画

第二部分:

上一页下一页

第二部分为页面中上一页,下一页按钮部分,其中:v-show="allData.mainShow"是控制俩个按钮显示,隐藏(详情页隐藏)v-show="back==0false:true"是控制单个按钮显示,隐藏(最后一页时,下一页按钮隐藏)v-on:click="dosom('back')"是绑定的点击事件

第三部分:

第三部分为页面中内容更新数据时loading画面,其中:v-show="loading"是用来显示,隐藏loading动画

好了,到此主要的HTML模块已经布局完毕,现在开始JS功能的开发

Ⅱ:javascript

JS这里的整体流程:watchrouter.path的变化,从URL中读取数据,从新获取数据。(因为本地JSON文件,获取JSON后对JSON进行剪切)

importrouterfrom'./router'ES6语法,引入router模块下暴露的接口,这里引入router实例为后续编写编程式导航铺垫。

num这个是用来每次打开或者刷新页面时读取当前为第几页的number,因为这个数值用了很多次,故将它放到了初始化函数里

mainShow控制俩个按钮(下一页,上一页)总体显示,隐藏

loading控制loading动画的显示,隐藏

change页面复用时的Key值

back返回按钮的number,因为按钮的判断为v-show="back==0false:true"当为0是隐藏

next同上

以上为这个demo中数据的含义,下面是方法的解释,从methods开始说起:

buttonToggle(){varnowNum=this.allData.num;this.back=nowNum;this.next=2-nowNum;}这是俩个按钮的控制函数,因为JSON数据不多,一个分类中只有2页数据,所以this.next=2-nowNum;最后一页时隐藏。

routePath(){if(this.$route.fullPath=="/"){router.push("/user/0/0");this.load();}elseif(this.$route.fullPath.length==9||this.$route.fullPath.length==20){this.load();}else{router.push("/user/error");this.back=0;this.next=0;}}this.$route.fullPath返回的是全部url字符串,这是当前url判断函数:

当读取到this.$route.fullPath.length==9||this.$route.fullPath.length==20,其实就是this.$route.fullPath为/user/x/x的主页面中,或者为/user/x/x/contype=x的详情页面中,此时直接进行load()方法更新数据即可

以上就是methods方法里全部函数,下面解释一下Vue实例里其他的方法。

watch:{"$route"(to){this.routePath();}}说到watch了这是监控url变化时触发的函数,说白了就是执行router.path("/user/x/x")之后Vue会检测到变化,从而进行回调函数,这里执行routerPath()分析url是属于哪个页面从而进行数据更新。

好了,javascript的编写到此结束,主要部分还是在routerPath()这个函数,再通过url重新获取数据。

style部分就不说了,简单的css3动画

利用vue-cli配合vue-router搭建一个完整的spa流程(二)

在(一)中写到了主要页面的编写,现在开始三个路由页面的编写。

先贴出代码。

importVuefrom'vue'importRouterfrom'vue-router'importVueResourcefrom'vue-resource'importtemfrom'@/components/showone'importtem_contfrom'@/components/showtwo'importtem_errorfrom'@/components/error'//安装插件Vue.use(Router)Vue.use(VueResource)exportdefaultnewRouter({routes:[{path:"/user/:list/:listNum",component:tem,children:[{path:"con",component:tem_cont}]},{path:"/user/error",component:tem_error}]})代码很短,一一解释下。

importVuefrom'vue'importRouterfrom'vue-router'importVueResourcefrom'vue-resource'importtemfrom'@/components/showone'importtem_contfrom'@/components/showtwo'importtem_errorfrom'@/components/error'↑这里是引入所有使用的数据,参数。

//安装插件Vue.use(Router)Vue.use(VueResource)↑这里说下vue-resource这个一开始没有安装,打开项目右键打开Git键入npminstallvue-resource--save这是一个ajax插件,使用起来比较方便而且很简单。

routes:[{path:"/user/:list/:listNum",component:tem,children:[{path:"con",component:tem_cont}]},{path:"/user/error",component:tem_error}]↑路由配置,详情页面是主页面的子路由。

先贴出代码,有些复杂,慢慢解释。

  • 首页
  • 页面一
  • {{item.content|more}}↑这是第一部分,包含导航与当前分类中全部内容的一个列表。

    ①:v-show='routerData.mainShow'这个控制整体部分显示隐藏,与上一页,下一页按钮为相同的控制数据,因为二者显示,隐藏逻辑是一样的。都是在详情页隐藏,主页显示。

    ②:v-on:click='link(0)'导航按钮跳转绑定的函数。

    ③:v-for='(item,index)inrouterData.showData'循环数据,渲染列表。

    ④:v-on:click='go(item,index)'每个列表绑定跳转到详情页的函数。

    ⑤:{{item.content|more}}渲染简介,并且通过一个过滤器使内容中数字过多时,进行剪切

    ↑这是第二部分,子路由入口。v-bind:router-nesting='routerData'给子路有中渲染页面的数据。

    接下来是script部分

    首先引入router实例importrouterfrom'.././router'再接收zjapp.vue传输过来的数据props:["routerData"]

    methods方法里函数解释:

    go(obj,index){router.push({path:this.$route.path+"/con",query:{type:index}});}↑这是列表中内容点击时执行的函数,从template中传过来index值,添加到url中,从而获取这是列表中第几个。

    link(num){varlistNum=this.$route.path.slice(6,7);if(listNum!=num){router.push("/user/"+num+"/0");this.isActive=this.$route.path.slice(6,7);}}↑link(num)函数是导航点击绑定的函数,通过传志num将url转换为对应的分类,从而触发watch重新获取数据。这里加了一个判断,重复点击,无效。

    filters:{more(value){varnewMessage=value.slice(0,40)+"........点击查看更多";returnnewMessage;}}↑过滤器,剪切字数。

    style就不解释了

    这个是文件是详情页面,即主页面中的列表内容点击后,跳转的页面。

    ↑数据与showone.vue相似,routerNesting数据是通过ziapp.vue->showone.vue->showtwo.vue传递过来的。back()函数将url从/user/0/0/contype=2跳转到/user/0/0触发watch更新数据。

    ↑嗯~o( ̄▽ ̄)o,这个比较简单,不做解释了。

    至此,全部都解清楚了,按照步骤来的话一个简单的spa也初见其形。

    整体思想:通过watch监控url的变化,变化后执行routerPath()函数,随后重新获取数据。

    THE END
    1.视角水疗会所找“服务”,原来暗藏玄机!经常听到老司机说做个SPA(水疗) 还未接触过 许多人以为是“美容保健” 其实在早期SPA(水疗) 是拉丁文Salus Per Aquam (Health by water)的字首 意为用水资源结合 沐浴、按摩、涂抹 保养品和香熏来促进新陈代谢 满足人体视觉、味觉、触觉、嗅觉 和思考达到一种身心畅快的享受 ...https://h5.youzan.com/v2/showcase/mpnews?alias=YZLmsowjTx
    2.男士spa养生加盟,加盟男士spa养生,一年能赚很多!男士spa养生加盟流程: 1、根据网站信息了解男士spa养生,对加盟男士spa养生有一个基本的认知,并确定开店的意向。 2、在官网下载《加盟申请表》,填写完整后提交到总部进行审核。 3、总部收到申请表以后,会在7个工作日内对加盟商的具体情况进行审核,审核通过即可通知申请人签约加盟。 https://www.jiamengfei.com/news/528280
    3.好友博文[专业烫发]陶瓷烫SPA水浴烫详细操作流程[专业烫发] 陶瓷烫、SPA水浴烫、详细操作流程 在现在的发廊流行的烫发技术中,陶瓷烫和SPA烫、酸性造型烫是发廊收费比较高的项目了。但现在还是有一些发廊在这些技术上操作不过关如:SPA烫完头发以后,花散、发尾毛、弹性不够?软化程度测试是不是到位了?刚刚烫完的效果好,但洗完头效果就不好了?等等这些问题都来了...https://www.hair8.net/sns/286298/blog/article_7984.xhtml
    1.完整的HOMESPA流程来咯~FORVIL品牌主理人@大忙人施老师从听觉、嗅觉、触觉等五感六觉的角度手把手为大家讲解头部HOME SPA洗前、洗中、洗后的养护流程宅家也能享受一次身心的疗愈快收藏起来,给自己安排一场 #头部按摩 #按摩头皮 #给头部做个护理 #改善头痛偏头痛失眠 #头部护理 #按摩头部仪器 #养发好物 #梳头的好处和功效与作用...https://m.dewu.com/note/trend/details?id=246085997
    2.体验给前列腺调理spa是什么2.缓解疲劳:现代生活节奏快,工作压力大,容易导致前列腺疲劳,而前列腺调理SPA可以有效缓解这种疲劳感,让身心得到放松。 3.改善前列腺功能:定期进行前列腺调理SPA可以帮助调节前列腺功能,预防前列腺疾病的发生,维护男性生殖系统的健康。 四、前列腺调理SPA的流程 1.咨询与评估:在前列腺调理SPA之前,专业的技师会与您进...https://www.yeeper-dairy.com/about/china.html?wap=View&a=index&aid=413563
    3.微前端singlespa:从应用到源码解析,看这一篇就够了!导读:本文从single-spa的应用、源码入手,探究微前端single-spa实现原理,帮助读者更好的了解single-spa的工作流程从而更好的应用到现实项目中去。在阅读之前,建议先看一下single-spa源码,带着问题再来看, 这样才能更好的加深对微前端理解。 01 背景 基础服务中台的统一运维平台是一个包含资源组织、监控配置与结果查看...https://maimai.cn/article/detail?fid=1718396902&efid=HcRwxjrNVF7DGQO9pah-XQ
    4.SPA服务流程化管理.doc将SPA的流程进行流程化,是每个 SPA经营者很希望达到的管理境界。但是,面对一个以服务为重,以顾客为先的 SPA,该如何规范地运行又能顾及到顾客的利益呢 ?万事不能两全,但是却可以寻找管理SPA服务流程化管理将SPA的流程进行流程化,是每个 SPA经营者很希望达到的管理境界。但是,面对一个以服务为重,以顾客为先的 ...https://m.taodocs.com/p-716615409.html
    5.全身spa都有那些项目–美丽百科网04、全身spa流程是什么 【精油按摩调配比例】 (1)脸部按摩调油比例为1%,在10ml的基础油当中加入2-3滴单方精油,量不宜过多; (2)身体按摩调油比例为2.5%,在10ml的基础油当中加入5滴单方精油,依手法按摩 【女子全身精油按摩两种基本手法】 一、滑动轻抚:这应该是精油按摩法中最有用的手法,是指一连串轻柔滑动、...https://www.234mei.com/yimei/908966.html
    6.瑶浴spa流程瑶浴的正确操作方法→MAIGOO知识瑶浴spa流程 瑶浴的正确操作方法 摘要:瑶浴是现在美容院养生会所比较受欢迎的美容养生项目,其效果显著,深受女性和亚健康人群喜爱。但是要怎样正确的用好瑶浴,那就有一个比较系统的流程。用比较标准的流程泡瑶浴才能够把效果发挥的更好。那么瑶浴的正确操作方法是怎样?下面为大家介绍瑶浴spa流程。https://m.maigoo.com/goomai/287006.html
    7.开始使用SPA(3):抓取实时汇率信息的开发练习4.创建自动化动作流程 如果您对BTP感兴趣,BTP个人精选内容目录 | SAP Blogs可能有更多你需要的内容 0.开发前的准备工作 要运行SPA程序,需要在Win10以上系统内安装一个本地代理,并将代理链接上中控台,详细过程请参考SAP Build Process Automation (SPA) 中控台概览 | SAP Blogs中的“3.SPA使用前准备工作“” ...https://blogs.sap.com/?p=1760116
    8.男人第一次做spa流程?男人第一次做spa流程?1分钟前阅读1回复0 玛丽儿 楼主 标题:男士首次进行SPA流程是什么?,,正文:对于许多男性来说,可能初次体验SPA就是被带进一个房间,开始接受各种专业的 *** 和护理。他们会被带到更衣室,并且需要脱掉鞋子和衣物,只穿着浴袍。他们会进入一个舒适的浴室,可能有一个淋浴区、更衣室和一些座位。https://www.kanwenda.com/k/830947.html
    9.在以色列死海,绝对不能错过的泥疗SPA!死海区域的大部分星级酒店都配有泥疗SPA馆,做一次的费用在300RMB左右。 泥疗SPA的大体流程是怎样的 1)进入一个光线昏暗的独立房间,脱光后换上一次性内裤戴上浴帽; 2)然后工作人员会拿一桶加热过的死海泥在你身上涂抹,从后背开始,一直到身体的各个部位(脸部和私处除外),死海泥的卖相虽然不怎么样,但摸起来滑滑的...https://m.mafengwo.cn/gonglve/ziyouxing/22084.html
    10.SPA美体如何开通团购(流程及好处·)开通SPA美体团购的流程和好处如下: 开通流程 首先,需要访问抖音团购平台的官网,并点击注册按钮进行账号注册。 必须拥有一个企业号,或者通过600元开通蓝V认证。这两个条件都支持开通团购创建活动。 在入驻抖音团购之后,可以根据自己的需求对店铺进行装修,以吸引更多的顾客。 https://shenzhen03524.11467.com/news/8074932.asp
    11.2021字节前端面试题汇总类似题2.项目中有没有遇到过跨域,这是什么,怎么解决的?为什么CORS要区分简单请求和非简单请求? 首先说了项目中用到了Nginx代理进行跨域,这个就没有继续深入问;然后说CORS,这个就问的比较细,什么是简单请求非简单请求,都是怎么个流程,具体到请求的http头部信息都有问到,过程中也是多次打断提问 ...https://blog.csdn.net/sunnnnh/article/details/115276641