vue项目常见需求(项目实战笔记)
一、起步
1.引入reset.css解决手机之间不同分辨率的问题(reset.css为别人封装的css文件)
import './assets/styles/reset.css'
使用方式 1rem=50px
我们使用rem代替px
2.引入border.css解决手机边框1px的问题
import 'styles/border.css'
使用方式 class="top" //在添加上边框,同理 left、right、bottom
3.解决移动端点击事件存在300毫秒延迟问题
在项目目录运行cmd输入
npm install fastclick --save
在main.js中引入文件
import fastClick from 'fastclick'
实例化:fastClick.attach(document.body)
二、常用插件
1.stylus 简化css编写方式
安装:npm install stylus --save
再安装:npm install stylus-loader --save
使用方式:<style lang="stylus"></style>
2.axios Ajax工具
安装: npm install axios --save
使用,法1:在需要使用的组件中<script>标签里引入
import axios from 'axios'
this.$axios()
使用,法2:
在main.js中引入
import axios from 'axios'
改为Vue的原型属性
Vue.prototype.$ajax=axios
直接调用this.$ajax()
例子:
this.$ajax.get('/api/index.json')
.then(function(res){
console.log(res)
})
3.vue-awesome-swiper 安装轮播插件(这里推荐使用2.6.7版)
安装:npm install vue-awesome-swiper@2.6.7 --save
使用方式:官方文档
4.better-scroll 滚动窗口插件
安装:npm install better-scroll --save
使用方式:
<div class="wrapper">
<ul class="content">
<li>...</li>
<li>...</li>
...
</ul>
<!-- 这里可以放一些其它的 DOM,但不会影响滚动 -->
</div> script中
import BScroll from 'better-scroll'
let wrapper = document.querySelector('.wrapper')//找到对应的标签
let scroll = new BScroll(wrapper)//实例化的第一个参数是一个原生的 DOM 对象 详情:官方文档 三、数据管理
Vuex 数据框架(进行数据传输)
/* 引入数据管理框架 */
import store from './store'
数据管理框架基础:
内容state(存公共数据)、actions、mutations(用于改变公用数据中的值)
如:
state: {
city: '成都'
},
actions: {
changeCity (ctx, city) {
// 调用mutations里对应的方法,city为所传值
ctx.commit('changeCity', city)
}
},
mutations: {
changeCity (state, city) {
state.city = city
}
注意:
1.采用dispatch调用index.js中actions对应的方法,city为所传的值
this.$store.dispatch('changeCity', city)
2.调用mutations里对应的方法,city为所传值
ctx.commit('changeCity', city)
改变值只能通过mutation方法区完成
3.调用公用数据方法
直接调用:this.$store.state.city
映射调用:
添加import { mapState } from 'vuex'
添加计算属性,将vuex里的city映射到计算属性的city中可直接调用this.city
computed: {
...mapState(['city'])
}
四、优化
keep-alive标签
功能 标签内的内容会被放入内存中,只需渲染一次,不用每次访问都进行渲染
<keep-alive>
<router-view/>
</keep-alive>
路由内的东西只需渲染一次,下次会直接从内存中调用数据
如果有每次进入都需要更新的数据可以使用生命钩子函数activated(){}
activated 在组件加载时调用
对应的 deactivated 在组件关闭时调用
前提需要使用 keep-alive
也可以这样写:
<keep-alive exclude="排除的组件名(不放入内存中,每次进入都会更新)">
内容。。。
</keep-alive>
五、开发环境的转发
编辑config里的index.js
找到proxyTable:{}
改写:
proxyTable: {
'/api':{
target: 'http://localhost:8080',
pathRewrite: {
'^/api': '/static/hithock'
}
}
}
//在开发环境访问时,将需要访问的api目录下的index.json改写为本地目录下static/hithock目录里
//前提需要用webpack
六、联机测试
1.要想服务可以通过ip地址访问需要改工程文件目录下的package.json中的 dev
添加 --host 0.0.0.0
变为:"dev": "webpack-dev-server --host 0.0.0.0 --inline --progress --config build/webpack.dev.conf.js"
七、项目打包
npm run build
打包出一个dist文件夹
将文件夹里的内容放到后端服务器上即可
当然,如果想改变文件的路径需要修改 config/index.js里面的打包内容如下:
assetsPublicPath: '/Travel', // 后端运行的目录
这里我们改为Travel目录
八、疑难问题
1.解决手机兼容性问题
npm install babel-polyfill --save //判断有无cs6新特性
2.使用better-scroll后click事件失效,解决方法
mounted(){
this.scroll=new Bscroll(this.$refs.wrapper, { mouseWheel: true, click: true, tap: true })
}
//better-scroll,默认它会阻止touch事件。所以在配置中需要加上click: true
OK!这就是我在项目中遇到的一些需要注意事项
最后:大家可以看一下我的成品。
易简图 ——一个专注于图片浏览资源器
欢迎骚扰!
vue项目常见需求(项目实战笔记)的更多相关文章
- vue实现音乐播放器实战笔记
原文链接:https://blog.csdn.net/Forever201295/article/details/80266600 一.项目说明该播放器的是基于学习vue的实战练习,不用于其他途径.应 ...
- Spring Boot +Vue 项目实战笔记(二):前后端结合测试(登录页面开发)
前言:关于开发环境 每位 Coder 都有自己偏好的开发工具,从大的方面划分主要有文本编辑器流和 IDE 流两种,我有一段时间也喜欢用编辑器(Sublime Text.Vim),但对我来说开发效率确实 ...
- mysql颠覆实战笔记(一)--设计一个项目需求,灌入一万数据先
版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸 ...
- Unity3D项目实战笔记(10):Unity3D编译IPA的PostEvents–节约时间利器
最近,SDK支付等接入差不多了,就从Unity3D生成IPA (企业版License), 然,需要手动执行的PostEvents竟然多大10项+, 这些我默默的承受了1周时间,每次约浪费20分钟-额外 ...
- Unity3D项目实战笔记(5):延时功能的几种实现
我所做过的系统,分单机版系统(2005年).CS系统(2010年).实时系统(2015年),各个系统均有“延时”功能:定时调度的: 本博客说的是实时系统中的延时功能(基于Unity3D游戏引擎). 在 ...
- vue 饿了么项目笔记
vue 饿了么项目 1.图标字体引用 链接 2.scss 二三倍图切换 1像素边框 链接 3.better-scroll 4.布局 商品主页面 <div id="app"&g ...
- Web项目开发介绍及实战项目介绍
引言 本系列课程我们将学些Golang语言中的Web开发框架Iris的相关知识和用法.通过本系列视频课程,大家能够从零到一经历一个完整项目的开发,并在课程中了解实战项目开发的流程和项目设涉及的各个模块 ...
- Vue常用经典开源项目汇总参考-海量
Vue常用经典开源项目汇总参考-海量 Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的 ...
- 【前端】Vue.js经典开源项目汇总
Vue.js经典开源项目汇总 原文链接:http://www.cnblogs.com/huyong/p/6517949.html Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) ...
随机推荐
- 2018.11.02 洛谷P2312 解方程(数论)
传送门 直接做肯定会TLETLETLE. 于是考验乱搞能力的时候到了. 我们随便选几个质数来checkcheckcheck合法解,如果一个数无论怎么checkcheckcheck都是合法的那么就有很大 ...
- 2018.10.27 bzoj1984: 月下“毛景树”(树链剖分)
传送门 唉蒟蒻又退化了,这道sb题居然做了20min,最后发现是updcovupdcovupdcov写成了updaddupdaddupdadd我还能说什么233233233 就是让你转边权为点权之后, ...
- Jquery中parentsUntil函数调用最容易犯的三个错误
来自 :http://jquery01.diandian.com/post/2012-01-16/14500044 Jquery中parentsUntil函数调用最容易犯的三个错误 Jquery的pa ...
- python中的分号
很多编程语言是以分号作为一行代码的的结束标志,但是在Python中不是这样的,而是靠缩进来识别程序结构. Python中一行代码以分号结束,并不是必须的,准确来说是不被推荐的,因为加上分号就是画蛇添足 ...
- DDR4控制笔记
DDR4接口 A[17:0] input 为激活命令提 供行地址,为读.写命令地址输入:提供列地址,也为模式寄存器设 置提供操作码,A[16]只用于8Gb和16Gb,A[17]只用于16Gb,另外 ...
- 好文推荐系列--------(3)GruntJS 在线重载 提升生产率至新境界
好文原文地址:http://segmentfault.com/a/1190000000354555 本文将首先介绍grunt-markdown插件如何配合HTML模板使用,接着我将介绍如何使用grun ...
- 归并排序 JavaScript 实现
前文我们了解了快速排序算法的实现,本文我们来了解下另一种流行的排序算法-归并排序算法. 我们先来回顾下快排.快排的核心是找出一个基准元素,把数组中比该元素小的放到左边数组,比该元素大的放到右边数组,如 ...
- weat!!团队
摘要: 团队名称:weat!! 团队成员:刘波 崔和杰 简介: 刘波:性别男,爱好:动漫,徒步旅行.在组内负责程序编写这一部分. 优点:认真负责,不懂就会去问. 崔和杰:性别男,爱好:篮球.在组内负责 ...
- 各版本.NET委托的写法回顾(转)
转自:http://www.csharpwin.com/csharpspace/7548r2766.shtml 在<关于最近面试的一点感想>一文中,Michael同学谈到他在面试时询问对方 ...
- 20145232 韩文浩 《Java程序设计》第2周学习总结
教材学习内容总结 这周主要学习了注释的使用,运算符的基本使用,认识了类型,变量与常量,以及一些语句语法.复习了进制转换. 整数 Short整数占用2字节,储存整数范围-32768 ~ 32767(2- ...