主要是分享下用vuejs开发项目过程中遇到的问题,vuejs开发的优势和需要注意的地方。

项目主要页面:主页,最新,分类,分类列表,详情页,结果页,斗图(列表,制作页)

效果图:

地址:https://zbimetest.iflyresearch.com/#/index?appid=tangdaoya

工具:vue脚手架:vue-cli

项目结构:

知识点:vue语法、vue-router(路由)、Mint UI(基于vue的移动端组件库)、es6(箭头函数,axios等)、webpack配置等

优点:

1.组件式开发。vuejs可以实现组件式开发,每个页面通用的元素都可以抽取为一个公用的组件,比如上面的搜索框和导航栏可以抽取成一个SearchResult.vue文件。其他页面需要用就直接导入

export default {
components: {
NavBar,
Search,
InfiniteLoading
}

这样极大地节省了开发工作量。

2.路由。vue有router组件集成了路由功能,利用#网页定位的功能,实现多功能的单页应用,也称为前段路由,详情看http://www.cnblogs.com/zhouyangla/p/6392404.html。

路由的跳转可以统一配置:

export default new Router({
routes: [
{
path: '/index',
name: 'index',
component: Index,
meta: {
keepAlive: true // 需要被缓存
}
},
{
path: '/new',
name: 'new',
component: New,
meta: {
keepAlive: true // 需要被缓存
}
}
})

如果地址后面有查询参数可以这样接收:let id = self.$route.params.id;

页面是否需要缓存:可以加上keepAlive字段进行控制,显然主页包括大量的图片是需要缓存的。

监测路由变化:

watch: {
'$route'(to, from){
console.log('从' + from.fullPath + '到' + to.fullPath);
let toStr=to.fullPath;
let fromStr=from.fullPath;
if (!toStr.includes('/index')) {
this.$refs.infiniteLoading.isLoading = true;
} else {
this.$refs.infiniteLoading.isLoading = false;
}
}
}

因为是单页应用,所以在主页"跳转后"到其他页面后,有的插件对主页的监听事件还没结束,导致事件继续执行,这时候就可以通过监听路由的方式,灵活的对事件进行控制。

3,es6 import ,需要什么组件直接引入,省略无关开销。

import {Toast} from 'mint-ui'//导入弹窗组件

4,一些小技巧,基于vue自身双向绑定和数据驱动的特性。

li点击高亮,以前的做法就是点击这个li标签,后加上active class,然后移除其他的active。vue可以这样实现:

<li class="item" v-for="item in items" @click="selected(item)" :class="{active: active == item}">{{item}}</li>

selected (item) {
this.active = item;
}
需要灵活变动的表单:比如说下拉框最后一个选项支持用户自定义文字,vue可以这样写:
  selectChange(e){
if (e.target.value == '自定义文本') {
this.inputShow = true;//显示文本输入框
} else {
this.inputShow = false;//隐藏
}
}
5,vue-cli使用webpack打包,优化页面性能,自动解决flex布局等不同浏览器的兼容性问题,给开发提供热加载功能及时响应页面变化,
支持es6和less高级语法等
6,状态管理vux,因为项目中没有状态需要集中管理,所以暂时没用到。 缺点:
1.因为很多插件是直接在网页上引入脚本使用的,不支持import的方式引用。包括cnzz统计脚本等,不能集成到vue中去,给开发带来一些麻烦。
2.有的时候不需要双向绑定,只需要数据单向流动,这时候用vue就比较麻烦

   心得:

 1.开发项目当去实现小功能去网上找插件有的时候是很麻烦的,不光是因为实现的功能不尽人意,还因为引入的大量的多余代码,导致出现未知的 错误。所以有时间尽量自己去造“轮子”,这样才能完美解决问题。

2.就是vue+es6开发项目很快,以后es6是主流,要逐渐习惯用es6的语法去写代码。

3.开发一些简单的项目用不到jquery,原生js的要开始熟悉。https://github.com/oneuijs/You-Dont-Need-jQuery

vue装逼神器简述的更多相关文章

  1. LESS使用方法简介(装逼神器)

    LESS 做为 CSS 的一种形式的扩展,它并没有阉割 CSS 的功能,而是在现有的 CSS 语法上,添加了很多额外的功能,所以学习 LESS 是一件轻而易举的事情,果断学习之! 变量 很容易理解: ...

  2. 我的第一个android应用——装逼神器《微博尾》

    继<微博尾>之<玩转尾巴>好玩尾巴积分版传送门:http://blog.csdn.net/love_5209/article/details/39473983 (本文andro ...

  3. Python3 装逼神器---词云(wordcloud)

    词云 (Word Cloud)是对文本中出现频率较高的词语给予视觉化展示的图形, 是一种常见的文本挖掘的方法. 实例:     依赖包: # pip3 install wordcloud  jieba ...

  4. 前端 JSer 装逼手册

    阅读 8143收藏 2352016-7-18 SegmentFault 分享:吉祥物 @ SegmentFault 在装逼成本越来越高的 JS 圈,是时候充值一下了 -- 题记. 作者:kenberk ...

  5. 系统运维工程师装逼完全指南(转载Mark)

    1.全球化的认证有助于提升逼格,什么OCM.CCIE.RHCA.CISSP等等能考都考,再不济,也要有一张系统架构设计师或者网络规划设计师的信产部认证.每过一个认证,逼格提升一档. 2.TCP/IP协 ...

  6. 关于NGINX的502的装逼打怪之路

    写日志之前先copy一段nginx502的原因,从某网看到如下,然而这并不是重点,最重要还是看博主手敲的东西. 一.NGINX 502错误排查 NGINX 502 Bad Gateway错误是Fast ...

  7. WebApp简单制作(后端也可以装逼啦)

    前端越来越吃香的感觉 年后回来,跟之前和几个同事和朋友聊天,发现有两个.net的和一个php的朋友都转到了前端,真是出乎意料.自从之前的webapp兴起后,前端感觉比后端吃香很多,总结朋友们转的原因, ...

  8. 你会用Python做出装逼的东西吗

    如果我回答:“用Python很牛逼,但不能做出装逼的东西”,那大家来学习“小白的Python入门教程 ”,还有多少意义? 所以,为了让装逼的小船升级为牛逼的巨轮,让大家学完“小白的Python入门教程 ...

  9. JavaScript 装逼指南

    Summary 本文秉承着 你看不懂是你sb,我写的代码就要牛逼 的理念来介绍一些js的装逼技巧. 下面的技巧,后三个,请谨慎用于团队项目中(主要考虑到可读性的问题),不然,leader 干你没商量. ...

随机推荐

  1. f-measure[转]

    F-Measure又称为F-Score,是IP(信息检索)领域常用的一个评价标准,计算公式为: 其中β是参数,P是准确率(Precision),R是召回率(Recall). F1-Measure:当参 ...

  2. 未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService...匹配的导出

    安装微软的windows补丁 KB2781514 ,补丁主要解决“在 .NET Framework 4.5 更新之后,Visual Studio 用户可能无法打开或创建 C++ 或 JavaScrip ...

  3. 【刷题】BZOJ 4827 [Hnoi2017]礼物

    Description 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手 环,一个留给自己,一个送给她.每个手环上各有 n 个装饰物,并且每个装饰物都有一定的亮度.但是在 ...

  4. BZOJ3236:[AHOI2013]作业——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=3236 第一种做法: 建两棵主席树分别处理两个问题. 第一个问题水,第二个问题参考SPOJ3267/ ...

  5. BZOJ2821:作诗——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=2821 问题描述 神犇SJY虐完HEOI之后给傻×LYD出了一题: SHY是T国的公主,平时的一大爱好 ...

  6. BZOJ1036:[ZJOI2008]树的统计——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1036 题目描述 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w. 我们将以下面的形式来 ...

  7. React的setState执行机制

    1. setState基本特点 1. setState是同步执行的 setState是同步执行的,但是state并不一定会同步更新 2. setState在React生命周期和合成事件中批量覆盖执行 ...

  8. bzoj2216: [Poi2011]Lightning Conductor(分治决策单调性优化)

    每个pi要求 这个只需要正反DP(?)一次就行了,可以发现这个是有决策单调性的,用分治优化 #include<iostream> #include<cstring> #incl ...

  9. 【计数】【UVA11401】 Triangle Counting

    传送门 Description 把1……n这n个数中任取3个数,求能组成一个三角形的方案个数 Input 多组数据,对于每组数据,包括: 一行一个数i,代表前i个数. 输入结束标识为i<3. O ...

  10. 使用restClient工具发送post请求并带参数

    运行 restClient 点 Method选项卡,选中post方法 然后切换到 Body选项卡,点右边的 倒三角,选 String body 出现如下窗口: 点击右边红圈里的按钮,弹出窗口: 点是, ...