回首用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项目的简单分享的更多相关文章

  1. vue-用Vue-cli从零开始搭建一个Vue项目

    Vue是近两年来比较火的一个前端框架(渐进式框架吧). Vue两大核心思想:组件化和数据驱动.组件化就是将一个整体合理拆分为一个一个小块(组件),组件可重复使用:数据驱动是前端的未来发展方向,释放了对 ...

  2. Vue系列——如何运行一个Vue项目

    声明 本文转自:如何运行一个Vue项目 正文 一开始很多刚入手vue.js的人,会扒GitHub上的开源项目,但是发现不知如何运行GitHub上的开源项目,很尴尬.通过查阅网上教程,成功搭建好项目环境 ...

  3. 利用 vue-cli 构建一个 Vue 项目

    一.项目初始构建 现在如果要构建一个 Vue 的项目,最方便的方式,莫过于使用官方的 vue-cli . 首先,咱们先来全局安装 vue-cli ,打开命令行工具,输入以下命令: $ npm inst ...

  4. 如何搭建一个VUE项目

    搭建环境 搭建node环境 下载 1.进入node.js官方网站下载页,点击下图中框出位置,进行下载即可,当前版本为8.9.4,下载网址为:https://nodejs.org/zh-cn/downl ...

  5. 如何搭建一个vue项目(完整步骤)

    参考资料 一.安装node环境 1.下载地址为:https://nodejs.org/en/ 2.检查是否安装成功:如果输出版本号,说明我们安装node环境成功 3.为了提高我们的效率,可以使用淘宝的 ...

  6. 搭建一个VUE项目

    搭建环境 搭建node环境 下载 1.进入node.js官方网站下载页,点击下图中框出位置,进行下载即可,当前版本为8.9.4,下载网址为:https://nodejs.org/zh-cn/downl ...

  7. 1.如何运行一个Vue项目

    如何运行一个Vue项目 需要的环境: node.js环境(npm包管理器) vue-cli 脚手架构建工具 cnpm npm的淘宝镜像 1. 安装node.js 从node.js官网下载并安装node ...

  8. 创建一个vue项目的过程

    创建一个vue项目: 1.首先从UI手上拿到PSD设计图,然后看设计搞的内容,需要做个大概的页面布局 2.做vue之前不许安装node,因为做vue项目要和node结合使用 3.然后安装vue脚手架: ...

  9. VUE系列一:VUE入门:搭建脚手架CLI(新建自己的一个VUE项目)

    一.VUE脚手架介绍 官方说明:Vue 提供了一个官方的 CLI,为单页面应用快速搭建 (SPA) 繁杂的脚手架.它为现代前端工作流提供了 batteries-included 的构建设置.只需要几分 ...

随机推荐

  1. mybatis分页练手

    最近碰到个需求,要做个透明的mybatis分页功能,描述如下:目标:搜索列表的Controller action要和原先保持一样,并且返回的json需要有分页信息,如: @ResponseBody @ ...

  2. 第五章 使用 SqlSession

    第五章 使用 SqlSession 原文链接; http://www.mybatis.org/spring/zh/sqlsession.html 在 MyBatis 中,你可以使用 SqlSessio ...

  3. Python环境以及编辑器

    1.Python环境搭建 http://blog.csdn.net/qq_29663071/article/details/70158204 备注:a.个人感觉 安装路径为自己选择的 位置和特性 b. ...

  4. iOS 通过UIControl,自定义控件

    如:自定义一个可以点击的 图文 #import <UIKit/UIKit.h> @interface UD_Button : UIControl @property(nonatomic,s ...

  5. 一些常用的vim编辑器快捷键:

    一些常用的vim编辑器快捷键: h」.「j」.「k」.「l」,分别控制光标左.下.上.右移一格. 按「ctrl」+「b」:屏幕往“后”移动一页. 按「ctrl」+「f」:屏幕往“前”移动一页. 按「c ...

  6. 使用 webpack 打包 font 字体的问题

    之前在使用 Vue 做项目的时候使用了 font 字体,然而在打包的时候 font 字体的引用路径不正确. 解决办法就是在 webpack 的配置文件中设置根路径 目录在 \config\index. ...

  7. Udacity并行计算课程笔记-The GPU Programming Model

    一.传统的提高计算速度的方法 faster clocks (设置更快的时钟) more work over per clock cycle(每个时钟周期做更多的工作) more processors( ...

  8. CubeSuit+ ( CS+ for ca )

    作为瑞萨单片机的初学者,最先接触的当属它的IDE了,接下来我将分享一些我使用这款单片机的心得,以供大家参考. 我使用的是RL78F13系列R5F10BGE,那如何建立一个能使用的工程呢?相信大家在网络 ...

  9. 地理信息系统公开课计划 前言I

    对,就是地理信息系统(GIS),不是遥感RS,也不是编程,纯粹的地理信息系统. 地理信息系统=数学+物理+计算机+地理的烧脑组合. 但凡能知道.了解地理信息系统的人,基本上都不会是非知识分子,我就不矫 ...

  10. 统计nginx单个IP访问日志并获取IP来源

    #!/usr/bin/env python #coding=utf-8 import requests from urllib2 import urlopen # import lxml.html f ...