Vue学习笔记

  • 组件
  • 子父组件通信
  • 子父组件:单向数据流
  • 非父子组件间的通信
  • 路由
  • router的使用
  • 路由嵌套,参数传递,路由结合动画
  • 参数传递
  • 路由实例的方法
  • 路由结合动画
  • 单文件组件
  • VUE文件
  • vue-loader
  • webpack
  • 示例步骤
  • 1. 创建项目,结构如下
  • 2. 编写App.vue组件
  • 3. 安装相关模板
  • 4. 编写main.js
  • 5. 编写webpack.config.js
  • 6. 编写.babelrc文件
  • 7. 编写package.json配置
  • 8. 运行测试
  • vue-cli脚手架
  • 步骤
  • 模块化开发
  • 1. vue-router模块化
  • 1.1 编辑main.js
  • 1.2 编辑App.vue
  • 1.3 创建router.config.js
  • 1.4 引入以及创建router实例
  • 2. axios模块化开发
  • Elment UI
  • 1. 简介
  • 2. 安装element ui
  • 3. 使用element ui
  • 4. 配置webpack.config.js
  • 5. element ui的样式和组件
  • 6. 使用less
  • 自定义插件
  • Vuex
  • 基本用法
  • 创建store.js文件
  • 编辑store.js文件
  • 编译App.vue
  • 分模块组织Vuex

组件

子父组件通信

1、子组件只能在父组件里使用
2、默认情况下,子组件不能直接访问父组件数据,每个组件的作用域都是独立的
3、子组件通过props属性来获取父组件传递的数据
4、props属性可以为Array,也可以使用对象,在对象中定义对数据的类型校验、数据校验、默认值等
5、 使用$emit(事件名,数据)子组件向父组件传递数据

子父组件:单向数据流

子组件不能直接修改父组件的数据,无法直接修改。
解决的方式:
1、如果子组件想把它作为局部数据来使用,可以将数据存在自己的变量中,不影响父组件数据
2、如果子组件想要修改数据并需要同步到父组件:
a.使用.sync修饰符(1.0支持,2.0不支持,2.3支持),使用this.$emit(‘update:变量名’, newValue)来显式触发时间来更新数据并同步到父组件;
b.将父组件中的数据包装成对象,然后在子组件之中可以修改这个对象

非父子组件间的通信

通过一个空的Vue实例来作为中央事件总线(事件总线),用它来触发时间和监听事件
通过事件总线的$emit和$on来分别触发事件和监听事件来发送和获取数据
注意在$on事件中使用箭头函数来避免this的问题

路由

router的使用

  1. 定义组件
  2. 配置路由
  3. 创建路由实例
  4. 创建根实例并将路由挂载到Vue实例上
    路由模式:hash和history
    linkActiveClass样式自定义
    redirect重定向路由

路由嵌套,参数传递,路由结合动画

参数传递

$route.query获取查询参数 /user/login?username=aa&passwd=bb
$route.params获取路径参数 /user/login/aa/bb

路由实例的方法

router.push() 添加路由,与router-link功能相同
router.replace() 替换路由,并且不产生历史记录

路由结合动画

单文件组件

VUE文件

由三部分组成,.vue结尾的文件,包含