Vue学习笔记--(2018-11-25)

概要:

    主要内容:vue安装时常用命令,文件目录介绍,better-scroll库的使用,项目部分优化措施

* node安装

node -v 检查node版本

* vue-cli全局安装

npm install -g vue-cli //加-g是安装到全局 安装完成后使用vue 回车  可以看到针对vue的命令行

* 使用淘宝镜像 网址:http://npm.taobao.org

安装:npm install cnpm -g --registry=https://registry.npm.taobao.org

* vue项目创建

1、vue init webpack vue-project-name

或者使用简单创建 vue init webpack-simple vue-project-name

2、cd vue-project-name

3、npm install //安装vue以及vue插件

4、npm run dev //运行项目

注:vue-project-name 是项目的名称

* 项目目录结构介绍

build和config是关于webpack的配置 里边包括一些server和端口

node_modules:安装依赖代码库

src:源码

static:存放第三方静态资源,static里面的.gitkeep,如果为空,也可以提交到gitHub上面,正常情况下,是不可以提交的。

.babelrc:把es6文件编译成es5

.babelrc文件

{

  "presets": ["es2015", "stage-2"], //表示预设,表示babelrc转换预先需要安装的插件

  "plugins": ["transform-runtime"], //把es6的方法做转换

  "comments": false  //false表示转换后代码不生成注释

}

.editorconfig:编辑器的配置

.editorconfig

charset = utf-8  //编码

indent_style = space //缩进风格,基于空格做缩进

indent_size = 2  //缩进大小是2格

end_of_line = lf  //换行符的风格

insert_final_newline = true  //当你创建一个文件,会自动在文件末尾插入新行

trim_trailing_whitespace = true  //自动移除行尾多余空格

.eslintignore 忽略语法检查的目录文件

就是忽略对build/*.js和 config/*.js

package.json : 

{

  "name": "demo",

  "version": "1.0.0",

  "description": "demoApp",

  "author": "",

  "private": true,

  "scripts": {  /*表示可以执行一些命令,例如:npm run dev会执行node build/dev-server.js,npm run build会执行node build/build.js,因此可以通过scripts配置脚本*/

    "dev": "node build/dev-server.js",

    "build": "node build/build.js",

    "lint": "eslint --ext .js,.vue src"

  },

  "dependencies": {  /*项目的依赖*/

    "vue": "^2.2.2",

    "vue-router": "^2.2.0"

  },

  "devDependencies": {  //编译需要的依赖

  .......................

  },

  "engines": {

    "node": ">= 4.0.0",

    "npm": ">= 3.0.0"

  },

  "browserslist": [

    "> 1%",

    "last 2 versions",

    "not ie <= 8"

  ]

}

入口文件: index.html    和 main.js

* 列表滑动相关 better-scroll 基于iscroll库实现

import BScroll from 'better-scroll'

    new BScroll('.warpper') 通过实例化容器来实现滚动

    需要确保在数据列表加载完成后实例化

* 优化相关

==> 缓存路由组件 实现方式 在router-view 外边包裹keep-alive标签实现对应组件的缓存

子路由使用回退的时候反复跳转的原因是使用push的方式进行跳转  路由队列里保存了重复的项

解决的方案是在router-link中使用replace的方式进行跳转

==> 路由懒加载 在打包前进行代码分割

import xxx from '.../xx.js' 改写成 const xxx=()=>import('.../xx.js')

这样的话路由中配置的组件compinent对应的组件即为路由组件函数

当且仅当执行此函数才会加载路由组件、这个函数在请求对应的路由路径是才会执行到

==> 图片懒加载 使用到一个库 vue-lazyload

安装 npm install --save vue-lazyload

引入 import VueLazyLoad from 'vue-lazyload'

申明 Vue.use(VueLazyload,{

loading:loading-img

})

或者

// or with options

Vue.use(VueLazyload, {

  preLoad: 1.3,

  error: 'dist/error.png',

  loading: 'dist/loading.gif',

  attempt: 1

})

使用 测试时候网速限制工具  赛风

==> 日期过滤器 import Vue from 'vue'

import moment from 'moment'

//自定义过滤器

Vue.filter('data-format',function(value,formatStr='YYYY-MM-DD HH:mm:ss'){

return moment(value).format(formatStr)

})

date-fns 轻量级的日期格式化库 仅需要引用对应的函数即可

引用 import './filters' //加载过滤器

使用 {{time | data-format}}

    ==> 打包文件分析与优化

  npm run build --report

你可能感兴趣的:(Vue学习笔记--(2018-11-25))