vue-learning:0 - 目录
Vue-learning
vue.js学习路径

Vue的API地图
视图层
点击可直接到达详情页面
指令
样式
特殊特性
过渡动画
模板形式
逻辑层
通用配置选项option
生命周期钩子函数
beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestorydestoryactivated(keep-alive)deactivated(keep-alive)
组件 Component
组件的概念
组件的构建和注册
- 构建:
com = Vue.extend(option) - 注册:
Vue.component('my-com', com)/vm.components: {'my-com': com} - 语法糖:
Vue.component('my-com',option)vm.components('my-com': option) - 组件命名规范
- 构建:
组件三大API:
prop/event/slot
prop- 字符串数组形式:
props: ['prop1', 'prop2', ...] - 对象形式:
type / required / defalut / validator - prop的命名规范
- 动态prop(除字符串外,其它类型传入都需要使用动态prop,即v-bind绑定)
- 单向数据流
- 非prop特性:
inheritAttr: false; / $attrs
event
v-on / $on监听事件$once一次性事件$emit触发事件$off卸载事件监听$listenersv-on绑定监听器集合(除原生监听事件).native原生事件修饰符.sync双向绑定修饰符model属性
slot
- 普通插槽
<slot></slot>
- 插槽提供默认值
<slot>default content</slot>
- 具名插槽
<slot name="someName"></slot>
<!-- 组件调用 -->
<my-com>
<template v-slot:somName></template>
<my-com>
- 作用域插槽
<slot :prop="value"></slot>
<!--组件调用 -->
<my-com>
<template v-slot='childValue'>{{ cilidValue.value}}</template>
</my-com>
- 独占默认插槽的写法
<some-component v-slot="childValue"> {{ childValue.value }}</some-component>
<some-component v-slot:default="childValue"> {{ childValue.value }}</some-component>
- 解构插槽prop
<my-com v-slot="{value}">{{ value }}</my-com>
<!-- 重命名 -->
<my-com v-slot="{value: otherName}">{{ otherName }}</my-com>
<!-- 重命名并提供默认值 -->
<my-com v-slot="{value: {otherName: defaultValue}}">{{ otherName }}</my-com>
- 动态插槽名
<my-com>
<template v-slot:[dynamicSlotName]></template>
</my-com>
v-slot的简写#<my-com>
<template #:somName></template>
<my-com>
- 模板编译作用域 和 插槽作用域
- 字符串数组形式:
组件实例的调用
ref$root$parent$children
组件间的通信
- 父子组件通信
prop / $emit - 三层嵌套组件
$attrs/$liteners - 后代组件通信
provide / inject - 组件实例引用
$root/$parent/$children/$refs - 事件总线
const Bus = new Vue() - 状态管理器
Vuex
- 父子组件通信
动态组件
is异步组件
工厂函数函数式组件
functional内置组件
transiton/keep-alive其它
- 组件的递归调用
- 组件的循环引用
v-once创建静态组件
路由 Vue-router
- 前端路由历史
- 服务端渲染(SSR:server side render)
- 客户端路由(client side routing)
- 前端路由实现原理
- hash模式: location.hash 和 hashChange事件
- history模式: history 和 popstate事件
- vue-router
- const router = new VueRouter(option)中的选项对象option
- 路由器实例对象router
- 路由对象route
- router-link标签的特性
- router-view标签的特性
- 路由传参的5种方式
1.路由动态参数: '/user/:userId'和paramsconst route = {path: '/user/:userId'}
this.$router.push({path:`/user/${userId}`})
this.$route.params.userId
2.命名路由传参,使用name和params
const route = {name:'home',...}
this.$router.push({name:'Login',params:{id:'leelei'}})
this.$route.params.id
3.查询参数传参,使用path和query
this.$router.push({path:'/login',query:{id:'leelei'})
this.$route.query.id
4.prop形式:布尔/对象/函数
const route = [{prop:true, ...}]
const route = [{prop: {someProp:'someValue'}]
const routes =[{props: (route) => ({ query: route.query.q }),...}]
- meta元信息定义数据
// 定义路由时,定义元信息
const routes = [
{meta: {someData:'someData'},... },
// 获取数据
this.$route.meta.someData
- 从路由中获取组件实例
const matchedComponents: Array<Component> = this.$router.getMatchedComponents(location?)
状态管理 Vuex
- 状态管理的概念
- vuex基本使用
- Vuex对象
- option选项
- store实例对象的属性: state, getters
- store实例对象的方法
- commit / dispatch
- 注册和卸载plugin的方法
- 注册和卸载Module的方法
- vuex的辅助函数: mapState / mapGetters / mapMutaions / mapActions
- vuex的项目结构组织
单元测试 vue-test-utils
项目构建vue-cli
进阶内容
- 响应式原理
- 虚拟DOM
- 模板编译原理
Vue API和vm API
vue-learning:0 - 目录的更多相关文章
- Vue 2.0 + Vue Router + Vuex
用 Vue.js 2.x 与相配套的 Vue Router.Vuex 搭建了一个最基本的后台管理系统的骨架. 当然先要安装 node.js(包括了 npm).vue-cli 项目结构如图所示: ass ...
- vue(2.0)+vue-router(2.0)+vuex(2.0)实战
好久没更新自己的知识库,刚好借双十一的契机,用上了vue(2.0)+vue-router(2.0)+vuex(2.0)来开发公司的双十一电商活动. 项目目录结构: 运行: npm install np ...
- vue 3.0 体验,vue 3.0新特性
前言 昨天不是尤雨溪 不是刚在B站 直播玩了,分享了vue-next v3.0.0-beta.1 版本 哈哈, 不要太刺激哦 6大亮点 Performance:性能更比Vue 2.0强. Tree s ...
- 重磅来袭 Vue 3.0 One Piece 正式发布
代号为One Piece 的Vue3.0 在9月19日凌晨正式发布!! 此次vue3.0 为用户提供了全新的 composition-api 以及更小的包大小,和更好的 TypeScript 支持. ...
- 使用 Vue 2.0 实现服务端渲染的 HackerNews
Vue 2.0 支持服务端渲染 (SSR),并且是流式的,可以做组件级的缓存,这使得极速渲染成为可能.同时, 和 2.0 也都能够配合 SSR 提供同构路由和客户端 state hydration.v ...
- 新手入门指导:Vue 2.0 的建议学习顺序
起步 1. 扎实的 JavaScript / HTML / CSS 基本功.这是前置条件. 2. 通读官方教程 (guide) 的基础篇.不要用任何构建工具,就只用最简单的 <script> ...
- vue 2.0 无法编译ES6语法
# vue2.0 webpack 无法编译 ES6 语法 之前在使用 vue 1.x 时用 vue-loader@8.0.0 版本可以正常打包vue的代码,包括ES6语法也能正常转为ES5语法,但是当 ...
- Vue 2.0初学后个人总结及分享
摘要:最近在上海找工作,发现Vue前景还不错,于是就打算先学习一下(之前了解过,但是一直没提到日程上)这篇随笔当是为了自己学习之后,做一个小的阶段性总结.希望本文的内容对于刚开始接触vue的朋友们有点 ...
- Arcade初探[0] 目录与导航
2017年6月,ESRI开发者页面出现了一个新玩意儿:Arcade. 连接:点我 这是什么东西呢?有什么用呢? 1. 是什么 Arcade一种表达语言,可以在ArcGIS平台上使用.不管是编写简单的脚 ...
- 《vue.js2.0从入门到放弃》学习之路
原文地址: Vue.js2.0从入门到放弃---入门实例(一):http://blog.csdn.net/u013182762/article/details/53021374 Vue.js2.0从入 ...
随机推荐
- Libevent:4event loop
一:运行loop 一旦一些events在event_base注册之后(下一节会讨论如何创建和注册events),就可以使Libevent等待events,并且在events准备好时能够通知 ...
- php配置文件php.ini中文详解
转自:http://www.cnblogs.com/hbl/archive/2008/02/15/1069367.html [PHP] ; PHP还是一个不断发展的工具,其功能还在不断地删减 ; 而p ...
- Implement strStr() 字符串匹配
Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle ...
- linux下arm平台Qt编译环境搭建与解析
一.概述: 我们知道QTcreator.这仅仅是个IDE,他包含了一个编译器--qmake.这两者的关系与codeblocks和g++的关系一样,首先要明确这些. 而我们在linu ...
- qt中绘制文字
(1)颜色QPen (2) 字体QFont (3)位置与对齐 void CircleWidget::paintEvent(QPaintEvent *event) { QPainter painter( ...
- Python--day69--ORM查询的13种方法
ORM查询的13种方法: 必知必会13条 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> ...
- Spring IoC 使用详解
在Spring中,依赖注入(DI)模式实现了控制反转(IoC)原理.让我们通过一个例子来帮助理解依赖注入.我们先看到java版的例子,然后在此基础上加上spring的功能.就例子而言,是相当地简单.Q ...
- @codeforces - 414E@ Mashmokh's Designed Problem
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一棵 n 个点的树,每个点的儿子是有序的. 现给定 m 次操 ...
- python如何自动发送邮件
#coding=utf-8 import smtplib from email.mime.text import MIMEText from email.mime.application import ...
- 第三期 预测——Frenet 坐标
Frenet坐标 在讨论过程模型之前,我们应该提到“Frenet Coordinates”,它是一种以比传统x,y笛卡尔坐标更直观的方式表示道路位置的方式. 用Frenet坐标,我们使用变量 s和d描 ...