Vue2官网简要笔记

####Vue实例
vue构造器:
var vm = new Vue({
  // 选项
})
扩展vue构造器:
var MyComponent = Vue.extend({
  // 扩展选项
})
属性和方法:
var vm = new Vue({
  el: "#example",
  data: data,
  computed: {},
  watch: {},
  methods: {}
})
生命周期:
beforeCreate, created, beforeMount, mouted, beforeUpdate, updated, beforeDestory, destoryed
####模板语法:
文本:Message: {{msg}}
纯HTML:


属性:

使用js表达式:{{ number + 1 }}
指令(Directives)是带有v-前缀的特殊属性

Now you see me


参数:(一个指令能接受一个参数,在指令后以冒号指明)


修饰符(Modifiers)是以半角句号.指明的特殊后缀

过滤器:
{{ message | capitalize }}

缩写:
  缩写为
缩写为
####计算属性:
计算缓存VS Methods:计算属性是基于他们的依赖进行缓存的,只要在他的相关依赖发生改变时才会重新求值。
computed属性VS Watched属性:尽量使用computed。
计算setter: 计算属性默认只有getter, 不过在需要时你可以提供一个setter。
观察Watchers:响应变化的数据,执行异步操作或者开销较大的操作。
####Class与Style绑定:
绑定HTML Class(对象语法):

绑定HTML Class(数组语法):

绑定内联样式(对象语法):


绑定内联样式(数组语法):

####条件渲染
v-if, v-else, v-else-if, v-show
用key 管理可复用的元素
####列表渲染
v-for: 数组迭代,对象迭代,整数迭代
key: v-for 正在更新已渲染的元素列表时,它默认“就地复用”策略。

数组更新检测:
变异方法:push(), pop(), shift(), unshift(),splice(),sort(),reverse()
重塑数组:filter(), concat(), slice()
####事件处理器
监听事件:v-on
方法事件处理器:methods
内联处理器方法:
事件修饰符:.stop, .pervent, .capture, .self, .once
按键修饰符:.enter, .tab, .delete, .esc, .space, .up, .down, .left, .right, .ctrl, .alt, .shift, .meta
####表单控件绑定
基本用法:
文本:
多行文本:
复选框:
单选按钮:
选择列表:
绑定value
单选按钮:
复选框:
列表设置:
修饰符
.lazy, .number, .trim
组件:
注册:new Vue({el: "element"})
全局注册:Vue.component('my-component',{})
局部注册:new Vue({ ...,components: { 'my-component': ChildComponent }})
DOM模板解析说明:元素ul, ol, table, select 限制了被包裹的元素
data 必须是函数
构成组件:props down, events up.
Prop
使用prop传递数据:props: ['message']
camelCase VS kebab-case:当使用的不是字符串模板,驼峰式命名的prop需要转换为相对应的短横线隔开式命名。
props: ['myMessage']

动态prop:
单向数据流:prop是单项绑定的。
Prop验证:可以为组件的props指定验证规格。
自定义事件:
使用v-on绑定自定义事件
    使用 $on(eventName) 监听事件
    使用 $emit(evnetName) 触发事件
使用自定义事件的表单输入组件:
(语法糖)

非父子组件通信:简单的场景下,使用一个空的Vue实例作为中央事件总线。
使用Slot分发内容
编译作用域:父组件模板的内容在父组件作用域内编译;子组件模板的内容在子组件作用域内编译。
单个Slot:
除非子组件模板至少包含一个,否则父组件的内容将会被丢弃。
标签内的任何内容都是备用内容。备用内容在子组件的作用域内被编译,并且只有在宿主元素为空,且没有要插入的内容时才显示备用内容。
具名Slot:
可以用一个特殊属性name来配置如何分发内容。
作用域插槽:(没看懂)
动态组件:
使用保留的元素,动态的绑定到他的is特性,让多个组件使用同一挂载点,并动态切换。
keep-alive参数:把切换出去的组件保存再内存中,避免重新渲染。
杂项:
编写可复用组件:
Vue组件的api来自三部分,Props, Events, Slots.
Props允许外部环境传递数据给组件。
Events允许组件触发外部环境的副作用。
Slots允许外部环境将额外的内容组合到组件中。
子组件索引:使用ref为子组件指定一个索引ID。
异步组件:Vue允许将组件定义为一个工厂函数,动态的解析组件的定义,在组件需要渲染时触发工厂函数。
组件命名规约:在注册组件时,可以使用 kebab-case ,camelCase ,或 TitleCase 。
在HTML模板中,使用kebab-case。
在字符串模板中,三种都可以。
如果组件未经slot传递内容,可以在组件名后使用/自闭合。
递归组件:
组件在有name属性时,可以在自己的模板内递归的调用自己。
组件间的循环引用:??
内联模板:如果组件有inline-template特性,组件将把他的内容作为他的模板,而不是作为分发内容。
X-Templates:另一种定义模板的方式是在js标签内使用text/x-template类型,并指定一个ID。
对低开销的静态组件使用v-once:当组价中很有大量的静态内容,可以使用v-once将渲染结果缓存起来。


############进阶################
####深入响应式原理
变化检测问题:vue在初始化实例时对属性执行getter/setter转化过程,所以属性必须在data对象上存在才能转化他,这样才能让他是响应式的。
可以使用 Vue.set(object, key, value) 方法将响应属性添加到嵌套的对象上,vm.$set方法是全局方法Vue.set的别名。
声明响应式属性:vue不允许动态添加根级响应属性,所以必须在初始化实例前声明根级响应式属性。
异步更新队列:??
####过渡效果:
单元素/组件的过渡:Vue提供了transition的封装组件。
过渡的CSS类名:v-enter, v-enter-active, v-leave, v-leave-active。
CSS过渡:
CSS动画:
自定义过渡类名:
同时使用Transitions和Animations:
JavaScript钩子:
初始渲染的过渡:
多个元素的过渡:当有相同标签名的元素进行切换时,最好设置key属性加以区分。
过渡模式:
多个组件的过渡:不需要key特性,只需要使用动态组件(:is)。
列表过渡:
可复用的过渡:将或者作为根组件,将任何子组件放置其中就可以了。
动态过渡:最基本的是通过name属性来绑定动态值。
####过渡状态
####render函数
####自定义指令
####混合
####插件:
插件通常会为Vue添加全局功能
开发插件:
1、添加全局方法或者属性
2、添加全局资源:指令、过滤器、过渡
3、通过全局mixin方法添加一些组件选项,如vuex。
4、添加Vue实例方法,通过把他们添加到Vue.prototype上实现。
5、一个库,提供自己的api,同时提供上面提到的一个或多个功能,如vue-router。
使用插件:
Vue.use(MyPlugin)
Vue.use(MyPlugin, { someOption: true })
####单文件组件
####生产环境部署
####路由:vue-router
####状态管理
####单元测试
####服务端渲染(SSR)

转载于:https://www.cnblogs.com/hzj680539/p/6589344.html

你可能感兴趣的:(Vue2官网简要笔记)