积分 136193
注册时间 2014-12-27
最后登录 2024-4-10
在线时间 603 小时
威望 562
贡献 29
金币 52696
钢镚 1422
交易凭证 1
分享 0
精华 33
帖子 2094
主题 1742
TA的每日心情 擦汗 2018-4-10 15:18
签到天数: 447 天
[LV.9]以坛为家II
超级版主
威望 562
贡献 29
金币 52696
钢镚 1422
地址: http://cn.vuejs.org/api/
全局配置 Vue.config
是一个对象,包含 Vue 的全局配置。可以在启动应用之前修改下面属性:
debug类型: Boolean
默认值: false
用法:
在调试模式中,Vue 会:
为所有的警告打印栈追踪。
把所有的锚节点以注释节点显示在 DOM 中,更易于检查渲染结果的结构。
只有开发版本可以使用调试模式。
delimiters类型: Array<String>
默认值: ["{{", "}}"]
用法:
Vue.config.delimiters = ['${' , '}' ]
修改文本插值的定界符。
unsafeDelimiters类型: Array<String>
默认值: ["{{{", "}}}"]
用法:
Vue.config.unsafeDelimiters = ['{!!' , '!!}' ]
修改原生 HTML 插值的定界符。
silent类型: Boolean
默认值: false
用法:
取消 Vue.js 所有的日志与警告。
async 全局 APIVue.extend( options ) Vue.nextTick( callback ) Vue.set( object, key, value ) Vue.delete( object, key ) Vue.directive( id, [definition] ) 参数:
{String} id
{Function | Object} [definition]
用法:
注册或获取全局指令。
Vue.directive('my-directive' , { bind: function ( ) {}, update: function ( ) {}, unbind: function ( ) {} }) Vue.directive('my-directive' , function ( ) { }) var myDirective = Vue.directive('my-directive' )
另见: 自定义指令
Vue.elementDirective( id, [definition] ) 参数:
{String} id
{Object} [definition]
用法:
注册或获取全局的元素指令。
Vue.elementDirective('my-element' , { bind: function ( ) {}, unbind: function ( ) {} }) var myDirective = Vue.elementDirective('my-element' )
另见: 元素指令
Vue.filter( id, [definition] ) 参数:
{String} id
{Function | Object} [definition]
用法:
注册或获取全局过滤器。
Vue.filter('my-filter' , function (value ) { }) Vue.filter('my-filter' , { read: function ( ) {}, write: function ( ) {} }) var myFilter = Vue.filter('my-filter' )
另见: 自定义过滤器
Vue.component( id, [definition] ) 参数:
{String} id
{Function | Object} [definition]
用法:
注册或获取全局组件。
Vue.component('my-component' , Vue.extend({ })) Vue.component('my-component' , { }) var MyComponent = Vue.component('my-component' )
另见: 组件
Vue.transition( id, [hooks] ) 参数:
{String} id
{Object} [hooks]
用法:
注册或获取全局的过渡钩子对象。
Vue.transition('fade' , { enter: function ( ) {}, leave: function ( ) {} }) var fadeTransition = Vue.transition('fade' )
另见: 过渡
Vue.partial( id, [partial] ) 参数:
{String} id
{String} [partial]
用法:
注册或获取全局的 partial。
Vue.partial('my-partial' , '<div>Hi</div>' ) var myPartial = Vue.partial('my-partial' )
另见: 特殊元素 - <partial>
Vue.use( plugin, [options] ) Vue.mixin( mixin ) 选项 / 数据 data类型: Object | Function
限制: 在组件定义中只能是函数。
详细:
Vue 实例的数据对象。Vue.js 会递归地将它全部属性转为 getter/setter,从而让它能响应数据变化。这个对象必须是普通对象 :原生对象,getter/setter 及原型属性会被忽略。不推荐观察复杂对象。
在实例创建之后,可以用 vm.$data
访问原始数据对象。Vue 实例也代理了数据对象所有的属性。
在定义组件 时,同一定义将创建多个实例,此时 data
必须是一个函数,返回原始数据对象。如果 data
仍然是一个普通对象,则所有的实例将指向同一个对象!换成函数后,每当创建一个实例时,会调用这个函数,返回一个新的原始数据对象的副本。
名字以 _
或 $
开始的属性不会 被 Vue 实例代理,因为它们可能与 Vue 的内置属性与 API 方法冲突。用 vm.$data._property
访问它们。
可以通过将 vm.$data
传入 JSON.parse(JSON.stringify(...))
得到原始数据对象。
示例:
var data = { a: 1 }var vm = new Vue({ data: data }) vm.a vm.$data === data var Component = Vue.extend({ data: function ( ) { return { a: 1 } } })
另见: 深入响应式原理
props propsData1.0.22+
computed methods watch 选项 / DOM el类型: String | HTMLElement | Function
限制: 在组件定义中只能是函数。
详细:
为实例提供挂载元素。值可以是 CSS 选择符,或实际 HTML 元素,或返回 HTML 元素的函数。注意元素只用作挂载点。如果提供了模板则元素被替换,除非 replace
为 false。元素可以用 vm.$el
访问。
用在 Vue.extend
中必须是函数值,这样所有实例不会共享元素。
如果在初始化时指定了这个选项,实例将立即进入编译过程。否则,需要调用vm.$mount()
,手动开始编译。
另见: 生命周期图示
template类型: String
详细:
实例模板。模板默认替换 挂载元素。如果 replace
选项为 false
,模板将插入挂载元素内。两种情况下,挂载元素的内容都将被忽略,除非模板有内容分发 slot。
如果值以 #
开始,则它用作选项符,将使用匹配元素的 innerHTML 作为模板。常用的技巧是用 <script type="x-template">
包含模板。
注意在一些情况下,例如如模板包含多个顶级元素,或只包含普通文本,实例将变成一个片断实例,管理多个节点而不是一个节点。片断实例的挂载元素上的非流程控制指令被忽略。
另见:
replace 选项 / 生命周期钩子 init created beforeCompile类型: Function
详细:
在编译开始前调用。
另见: 生命周期图示
compiled ready attached detached beforeDestroy类型: Function
详细:
在开始销毁实例时调用。此时实例仍然有功能。
另见: 生命周期图示
destroyed 选项 / 资源 directives类型: Object
详细:
一个对象,包含指令。
另见:
elementDirectives类型: Object
详细:
一个对象,包含元素指令。
另见:
filters类型: Object
详细:
一个对象,包含过滤器。
另见:
components类型: Object
详细:
一个对象,包含组件。
另见:
transitions类型: Object
详细:
一个对象,包含过渡。
另见:
partials类型: Object
详细:
一个对象,包含 partial。
另见:
选项 / 杂项 parent events mixins name extends1.0.22+
实例属性 vm.$data vm.$el vm.$options vm.$parent类型: Vue 实例
只读
详细:
父实例,如果当前实例有的话。
vm.$root vm.$children类型: Array<Vue instance>
只读
详细:
当前实例的直接子组件。
vm.$refs类型: Object
只读
详细:
一个对象,包含注册有 v-ref
的子组件。
另见:
vm.$els 实例方法 / 数据vm.$watch( expOrFn, callback, [options] ) 注意:在修改(不是替换)对象或数组时,旧值将与新值相同,因为它们索引同一个对象/数组。Vue 不会保留修改之前值的副本。
示例:
vm.$watch('a.b.c' , function (newVal, oldVal ) { }) vm.$watch('a + b' , function (newVal, oldVal ) { }) vm.$watch( function ( ) { return this .a + this .b }, function (newVal, oldVal ) { } )
vm.$watch
返回一个取消观察函数,用来停止触发回调:
var unwatch = vm.$watch('a' , cb)unwatch()
Option: deep
为了发现对象内部值的变化,可以在选项参数中指定 deep: true
。注意监听数组的变动不需要这么做。
vm.$watch('someObject' , callback, { deep: true }) vm.someObject.nestedValue = 123
Option: immediate
在选项参数中指定 immediate: true
将立即以表达式的当前值触发回调:
vm.$watch('a' , callback, { immediate: true })
vm.$get( expression ) vm.$set( keypath, value ) vm.$delete( key ) vm.$eval( expression ) vm.$interpolate( templateString ) vm.$log( [keypath] ) 实例方法 / 事件vm.$on( event, callback ) vm.$once( event, callback ) vm.$off( [event, callback] ) 参数:
{String} [event]
{Function} [callback]
用法:
删除事件监听器。
如果没有参数,则删除所有的事件监听器;
如果只提供了事件,则删除这个事件所有的监听器;
如果同时提供了事件与回调,则只删除这个回调。
vm.$emit( event, […args] ) vm.$dispatch( event, […args] ) vm.$broadcast( event, […args] ) 实例方法 / DOMvm.$appendTo( elementOrSelector, [callback] ) vm.$before( elementOrSelector, [callback] ) vm.$after( elementOrSelector, [callback] ) vm.$remove( [callback] ) vm.$nextTick( callback ) 实例方法 / 生命周期vm.$mount( [elementOrSelector] ) 参数:
{Element | String} [elementOrSelector]
返回值: vm
——实例自身
用法:
如果 Vue 实例在实例化时没有收到 el
选项,则它处于“未挂载”状态,没有关联的 DOM 元素或片断。可以使用 vm.$mount()
手动地开始挂载/编译未挂载的实例。
如果没有参数,模板将被创建为文档之外的的片断,需要手工用其它的 DOM 实例方法把它插入文档中。如果 replace
选项为 false
,则自动创建一个空 <div>
,作为包装元素。
在已经挂载的实例上调用 $mount()
没有效果。这个方法返回实例自身,因而可以链式调用其它实例方法。
示例:
var MyComponent = Vue.extend({ template: '<div>Hello!</div>' }) new MyComponent().$mount('#app' )new MyComponent({ el: '#app' })new MyComponent().$mount().$appendTo('#container' )
另见: 生命周期图示
vm.$destroy( [remove] ) 指令 v-text v-html类型: String
详细:
更新元素的 innerHTML
。内容按普通 HTML 插入——数据绑定被忽略。如果想复用模板片断,应当使用 partials 。
在内部, {{{ Mustache }}}
插值也会被编译为锚节点上的一个 v-html
指令。这个指令需要一个包装元素,不过性能稍好并且避免 FOUC (Flash of Uncompiled Content) 。
在网站上动态渲染任意 HTML 是非常危险的,因为容易导致 XSS 攻击 。只在可信内容上使用 v-html
,永不 用在用户提交的内容上。
示例:
<div v-html ="html" > </div > <div > {{{html}}}</div >
v-if v-show v-else v-for类型: Array | Object | Number | String
Param Attributes:
用法:
基于源数据将元素或模板块重复数次。指令的值必须使用特定语法alias (in|of) expression
,为当前遍历的元素提供别名:
<div v-for ="item in items" > {{ item.text }} </div >
1.0.17+ 支持 of
分隔符。
另外也可以为数组索引指定别名(如果值是对象可以为键指定别名):
<div v-for ="(index, item) in items" > </div > <div v-for ="(key, val) in object" > </div >
另见: 列表渲染
v-on缩写: @
类型: Function | Inline Statement
参数: event (required)
修饰符:
.stop
- 调用 event.stopPropagation()
。.prevent
- 调用 event.preventDefault()
。.capture
- 添加事件侦听器时使用 capture 模式。.self
- 只当事件是从侦听器绑定的元素本身触发时才触发回调。.{keyCode | keyAlias}
- 只在指定按键上触发回调。用法:
绑定事件监听器。事件类型由参数指定。表达式可以是一个方法的名字或一个内联语句,如果没有修饰符也可以省略。
用在普通元素上时,只能监听原生 DOM 事件 。用在自定义元素组件上时,也可以监听子组件触发的自定义事件 。
在监听原生 DOM 事件时,方法以事件为唯一的参数。如果使用内联语句,语句可以访问一个 $event
属性: v-on:click="handle('ok', $event)"
。
1.0.11+ 在监听自定义事件时,内联语句可以访问一个 $arguments
属性,它是一个数组,包含传给子组件的 $emit
回调的参数。
v-bind缩写: :
类型: * (with argument) | Object (without argument)
参数: attrOrProp (optional)
修饰符:
.sync
- 双向绑定,只能用于 prop 绑定。.once
- 单次绑定,只能用于 prop 绑定。.camel
- 将绑定的特性名字转回驼峰命名。只能用于普通 HTML 特性的绑定,通常用于绑定用驼峰命名的 SVG 特性,比如 viewBox
。用法:
动态地绑定一个或多个 attribute,或一个组件 prop 到表达式。
在绑定 class
或 style
时,支持其它类型的值,如数组或对象。
在绑定 prop 时,prop 必须在子组件中声明。可以用修饰符指定不同的绑定类型。
没有参数时,可以绑定到一个对象。注意此时 class
和 style
绑定不支持数组和对象。
示例:
<img v-bind:src ="imageSrc" > <img :src ="imageSrc" > <div :class ="{ red: isRed }" > </div > <div :class ="[classA, classB]" > </div > <div :class ="[classA, { classB: isB, classC: isC }]" > </div > <div :style ="{ fontSize: size + 'px' }" > </div > <div :style ="[styleObjectA, styleObjectB]" > </div > <div v-bind ="{ id: someProp, 'other-attr': otherProp }" > </div > <my-component :prop ="someThing" > </my-component > <my-component :prop.sync ="someThing" > </my-component > <my-component :prop.once ="someThing" > </my-component >
另见:
v-model类型: 随表单控件类型不同而不同。
限制:
<input>
<select>
<textarea>
Param Attributes:
用法:
在表单控件上创建双向绑定。
另见: 表单控件绑定
v-ref不需要表达式
限制: 子组件
参数: id (required)
用法:
在父组件上注册一个子组件的索引,便于直接访问。不需要表达式。必须提供参数 id。可以通过父组件的 $refs
对象访问子组件。
在和 v-for
一起用时,注册的值将是一个数组,包含所有的子组件,对应于绑定数组。如果 v-for
用在一个对象上,注册的值将是一个对象,包含所有的子组件,对应于绑定对象。
注意:
因为 HTML 不区分大小写,camelCase 名字比如 v-ref:someRef
将全转为小写。可以用 v-ref:some-ref
设置 this.$els.someRef
。
示例:
<comp v-ref:child > </comp > <comp v-ref:some-child > </comp >
this .$refs.childthis .$refs.someChild
使用 v-for
:
<comp v-ref:list v-for ="item in list" > </comp >
另见: 子组件索引
v-el v-pre v-cloak 特殊元素 component slot partial 过滤器 capitalize uppercase lowercase currency pluralize参数:
{String} single, [double, triple, ...]
用法:
如果只有一个参数,复数形式只是简单地在末尾添加一个 “s”。如果有多个参数,参数被当作一个字符串数组,对应一个、两个、三个…复数词。如果值的个数多于参数的个数,多出的使用最后一个参数。
示例:
{{count}} {{count | pluralize 'item'}}
1 => ‘1 item’ 2 => ‘2 items’
{{date}}{{date | pluralize 'st' 'nd' 'rd' 'th'}}
结果:
1 => ‘1st’ 2 => ‘2nd’ 3 => ‘3rd’ 4 => ‘4th’ 5 => ‘5th’
json debounce limitBy filterBy限制: 指令的值须是数组,如 v-for
参数:
{String | Function} targetStringOrFunction
"in" (optional delimiter)
{String} [...searchKeys]
用法:
返回过滤后的数组。第一个参数可以是字符串或函数。
如果第一个参数是字符串,则在每个数组元素中搜索它:
<div v-for ="item in items | filterBy 'hello'" >
在上例中,只显示包含字符串 "hello"
的元素。
如果 item 是一个对象,过滤器将递归地在它所有属性中搜索。为了缩小搜索范围,可以指定一个搜索字段:
<div v-for ="user in users | filterBy 'Jack' in 'name'" >
在上例中,过滤器只在用户对象的 name
属性中搜索 "Jack"
。为了更好的性能,最好始终限制搜索范围。
上例使用静态参数,当然可以使用动态参数作为搜索目标或搜索字段。配合 v-model
我们可以轻松实现输入提示效果:
<div id ="filter-by-example" > <input v-model ="name" > <ul > <li v-for ="user in users | filterBy name in 'name'" > {{ user.name }} </li > </ul > </div >
new Vue({ el: '#filter-by-example' , data: { name: '' , users: [ { name: 'Bruce' }, { name: 'Chuck' }, { name: 'Jackie' } ] } })
另一个示例:
多搜索字段:
<li v-for ="user in users | filterBy searchText in 'name' 'phone'" > </li >
多搜索字段为一个动态数组:
<div v-for ="user in users | filterBy searchText in fields" >
使用自定义过滤函数:
<div v-for ="user in users | filterBy myCustomFilterFunction" >
orderBy 数组扩展方法Vue.js 在 Array.prototype
上添加了两个方法,以方便常见的数组操作,并且能触发视图更新。
array.$set(index, value)参数:
用法:
通过索引设置数组元素并触发视图更新。
vm.animals.$set(0 , { name: 'Aardvark' })
另见: 数组检测问题
array.$remove(reference)