一个vue项目的简单分享
回首用vue已经2个多月了,今年7月底根据vue社区提供的api写了一个小移动端的小dom
通过这个项目也让我更深入的了解了vue(组件之间的通讯,计算属性,数据绑定、数据驱动....),用数据驱动型的框架做项目好处就是基本上不需要自己操作dom,框架会通过数据改变帮你最优的操作,也让你开发更加迅速
vue数据的更新: 获取数据(转换数据) →绑定事件→渲染dom →监听事件→改变数据(计算)→重新绑定事件→改变dom
首先vue会遍历一遍你定义的 data 然后通过 这个ES5的属性(Object.defineProperty)把你的data全部转为 getter/setter。
每个组件都有一个自己的 观察数据的 实例对象(watcher ) 当你的数据改变是 这个实例对象会得到一个通知,然后重新计算更新
vue还在内部做了很多优化我们看不见,比如异步更新,等等
vuex: vuex是vue的状态管理器 就行 angular的状态机 react 的 redux。
他提供了 一个(或者多个state)
getter: 获取vuex的state。
mutation:设置vuex的state(最好通过这个设置才能让vue观察到vuex数据的绑定,官网介绍只能在这修改vuex数据不然vue会给警告,但发现其实在别的地方,如action也可以修改并且无警告)。
action: 大量或者需要异步提交的 数据可以通过 action (甚至能通过这个去发ajax请求,因为他是异步的)
分割 state: Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块——从上至下进行同样方式的分割( getter、action可以通过rootState 获取上游的 state但mutation似乎不行)
vuex的使用环境:(跨组件数据通信多,频繁,或者想通过vue更加直观的观察数据,因为数据传递有时候会不好追踪,尤其是双向改变的时候。当数据传递多的时候更是)
如果不用vuex的话:
父组件向子组件:传递用 props传递,然后子组件就可以拿到数据
子组件向父组件:传递通过this.$emit(‘事件名’, data)然后父组件监听事件拿到传过来的数据
非父子组件: 创建一个 空vue实例 new Vue() 然后 用这个实例 派发事件让别的组件去监听(用的少,基本上遇到这个就是vuex)
vue-router:
组件内定义一个<router-view><router-view/>标签 该组件旗下所有的子路由都会进入这个 标签内(可以定义多个,单页面多路由操作)
路由钩子: 可以创建全局钩子,或者单个路由的独享钩子 每个钩子都有三个参数(to, from, next)
to: 即将要进入的目标 路由对象 可以通过这个参数获取 对面路由传的参数和 路径等等
from:没用过
next:想要离开这个路由就要这些这个参数(他是一个方法),可以通过他跳到别的路由或者中断路由
ps: 甚至可以通过 watch 去观察路由 做一些不可描述的事情
编程式的导航: this.push({}) this.go() 指哪打哪
传递路由参数获取参数: 如果是通过 router.push的话 加一个query参数(它是一个对象),进入的如有通过 this.$router.query.***获取
动态路由: 可以设置动态路径参数,达到数据不同但组件同一个的效果
懒加载: vue的异步组件 加 code splitting feature (简单粗暴)
const *** = () => import('@/views/***')
路由动画: 给路由包裹一个 <transition name='***'></transition> 通过给name设置class
***-enterr: 初始状态
***-leave-active:离开变成什么样
***-enter-active: 进来时变化成什么样
可以通过 watch 观察router 然后动态 设置name 设置不一样的动画。官网有例子
还有很多,以后多总结一些经验再写吧
附上github地址: https://github.com/Xudaobin/VueCommunity
项目用到的技术:vue+vuex+vue-route+vue-cli+axios+vue-lazyload+better-scroll
欢迎各路大神 指出问题
一个vue项目的简单分享的更多相关文章
- vue-用Vue-cli从零开始搭建一个Vue项目
Vue是近两年来比较火的一个前端框架(渐进式框架吧). Vue两大核心思想:组件化和数据驱动.组件化就是将一个整体合理拆分为一个一个小块(组件),组件可重复使用:数据驱动是前端的未来发展方向,释放了对 ...
- Vue系列——如何运行一个Vue项目
声明 本文转自:如何运行一个Vue项目 正文 一开始很多刚入手vue.js的人,会扒GitHub上的开源项目,但是发现不知如何运行GitHub上的开源项目,很尴尬.通过查阅网上教程,成功搭建好项目环境 ...
- 利用 vue-cli 构建一个 Vue 项目
一.项目初始构建 现在如果要构建一个 Vue 的项目,最方便的方式,莫过于使用官方的 vue-cli . 首先,咱们先来全局安装 vue-cli ,打开命令行工具,输入以下命令: $ npm inst ...
- 如何搭建一个VUE项目
搭建环境 搭建node环境 下载 1.进入node.js官方网站下载页,点击下图中框出位置,进行下载即可,当前版本为8.9.4,下载网址为:https://nodejs.org/zh-cn/downl ...
- 如何搭建一个vue项目(完整步骤)
参考资料 一.安装node环境 1.下载地址为:https://nodejs.org/en/ 2.检查是否安装成功:如果输出版本号,说明我们安装node环境成功 3.为了提高我们的效率,可以使用淘宝的 ...
- 搭建一个VUE项目
搭建环境 搭建node环境 下载 1.进入node.js官方网站下载页,点击下图中框出位置,进行下载即可,当前版本为8.9.4,下载网址为:https://nodejs.org/zh-cn/downl ...
- 1.如何运行一个Vue项目
如何运行一个Vue项目 需要的环境: node.js环境(npm包管理器) vue-cli 脚手架构建工具 cnpm npm的淘宝镜像 1. 安装node.js 从node.js官网下载并安装node ...
- 创建一个vue项目的过程
创建一个vue项目: 1.首先从UI手上拿到PSD设计图,然后看设计搞的内容,需要做个大概的页面布局 2.做vue之前不许安装node,因为做vue项目要和node结合使用 3.然后安装vue脚手架: ...
- VUE系列一:VUE入门:搭建脚手架CLI(新建自己的一个VUE项目)
一.VUE脚手架介绍 官方说明:Vue 提供了一个官方的 CLI,为单页面应用快速搭建 (SPA) 繁杂的脚手架.它为现代前端工作流提供了 batteries-included 的构建设置.只需要几分 ...
随机推荐
- 4. sudo,PATH环境变量,修改字符集,ntpserver,加大文件描述符,隐藏内核版本,锁定关键系统文件
1 命令: visudo 98gg 98行 yy 复制当前行 p ...
- ligerUI---ligerForm中下拉框使用
写在前面: 最近项目的前框框架用的是ligerUI,一开始我是拒绝的,因为貌似ligerUI很少有人用,我真的很想问我们team的斌哥哥为什么要用ligerUI来做前端框架?????(啊哈哈哈,用什么 ...
- 事务处理操作(COMMIT,ROLLBACK)。复制表。更新操作UPDATE实际工作中一般都会有WHERE子句,否则更新全表会影响系统性能引发死机。
更新操作时两个会话(session)同时操作同一条记录时如果没有事务处理操作(COMMIT,ROLLBACK)则会导致死锁. 复制表:此方法Oracle特有
- JAVA多线程统计日志计数时的线程安全及效率问题
最近工作上遇到一个需求:需要根据nginx日志去统计每个域名的qps(Query Per Second,每秒查询率)数据. 解决了日志读取等问题之后,为了写一个尽可能高效的统计模块,我决定用多线程去计 ...
- 零基础学习webpack打包管理
这些天在项目之余的时间学习了webpack打包项目的东西,非常荣幸的找到一些大神的文章来学习,死劲嚼了几天,终于略知一二.在以后的工作上还需继续学习,下面我将分享我这几天学到的一点东西,希望能让我一个 ...
- 最全linux命令
arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI ...
- Xamarin android spinner的使用方法
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- ArcGIS API for JavaScript 中的数据类型【vs】GPServer的数据类型
熟悉GPServer的同学肯定知道,GPServer在10.1的ArcMap后需要执行成功一次才能发布. 发布GPServer,可以是ArcMap的工具箱的工具,也可以是自己写的模型. 不管是ArcM ...
- Maven安装教程
一.安装Maven及配置环境变量 1.Maven官网地址:http://maven.apache.org/download.cgi 下载apache-maven-3.5.0-bin.zip文件 2. ...
- Android 一排按钮居中显示
将一排按钮放在LinearLayout中,设置LinearLayout的Android gravity属性为center_vertical(垂直居中)