回首用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. C# 接口使用方法

    之前一直不理解接口这一概念,今天无意中翻书,网上查资料悟道其中的道理,现在工作没有用到interface这一块,怕以后会遇到忘记实现的方法便记录下来,哪里写的不对希望读者指出,话不多说,接下来看我对接 ...

  2. 浅谈Async/Await

    概要 在很长一段时间里面,FE们不得不依靠回调来处理异步代码.使用回调的结果是,代码变得很纠结,不便于理解与维护,值得庆幸的是Promise带来了.then(),让代码变得井然有序,便于管理.于是我们 ...

  3. C++ 知识点总结复习

    C++ 1.C++是静态类型语言,使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查. 2.面向对象程序设计 C++ 完全支持面向对象的程序设计,包括面向对象开发的四大特性: 封 ...

  4. 506. Relative Ranks

    Given scores of N athletes, find their relative ranks and the people with the top three highest scor ...

  5. 一个APP页面一个接口

    目前所在的公司做的是健康产业方面的APP,这个产品包括了安卓和IOS还有web三方面,除了要写后台管理的系统外,还要写移动端的接口.第一次写移动端接口就犯了一个错误,以为和web一样是怎么方便怎么来, ...

  6. Activemq集群搭建

    集群搭建 一:静态网络集群 1.简介 ​ 当ActiveMQ面对大量消息存储和大量Client交互时,性能消耗将会达到单个broker极限,此时我们需要对ActiveMQ进行水平扩展.ActiveMQ ...

  7. vue 和 react 学习 异同点

    vue 和 react 学习 异同点 本文不做两个框架比较,只对比了两个框架的语法对比,不代表任何观点,盗版必究,本人唯一qq:421217189 欢迎大家一起来学习探讨,壮我大前端(本文markdo ...

  8. Linux(以CentOS6.5示例)下安装Oracle官方最新版JDK(JDK1.8)

    本文地址http://comexchan.cnblogs.com/ ,作者Comex Chan,尊重知识产权,转载请注明出处,谢谢! 我们很多组件都需要使用Oracle最新版的JDK,所以需要在我们的 ...

  9. requireJS教程

    目录[-] 使用 RequireJS 优化 Web 应用前端 AMD 简介 传统 JavaScript 代码的问题 AMD 的引入 清单 1. AMD 规范 RequireJS 简介 实战 Requi ...

  10. IDA Pro反编译代码类型转换参考

    /* This file contains definitions used by the Hex-Rays decompiler output. It has type definitions an ...