Vue的全局API

Vue.component()方法用来注册自定义组件,这个方法属于全局API中的一种,Vue中还有很多常用的全局API

1.Vue.directive

Vue中有很多内置指令,如v-model、v-for和v-bind等。除了内置指令,开发人员也可以根据需求注册自定义指令。

通过自定义指令可以对低级DOM元素进行访问,为DOM元素添加新的特性。

Vue
<!-- 自定义指令:focus -->
<div id="app">
<input type="text" v-focus="true">
</div>
<div>
<input type="text">
</div>
<script>
Vue.directive('focus',{
inserted(el,binding){
if(binding.value){
el.focus()
}
}

})
var vm = new Vue({el:'#app'})
</script>
2.Vue.use

Vue.use主要用于在Vue中安装插件,通过插件可以为Vue添加全局功能。

插件可以是一个对象或函数,如果是对象,必须提供install()方法,用来安装插件;

如果是一个函数,则该函数将被当成install()方法。

Vue
<div id="app" v-my-directive></div>
<script>
// 定义一个myplugin对象
let MyPlugin ={}
MyPlugin.install = function(Vue,options){
console.log(options)
}
Vue.directive('my-directive',{
bind(el,binding){
el.style = 'width:100px;height:100px;background-color: pink;'

}
})
Vue.use(MyPlugin,{someopition:true})
var vm = new Vue({el:'#app'})
</script>
3.Vue.extend

Vue.extend用于基于Vue构造器创建一个Vue子类,可以对Vue构造器进行扩展。

它有一个options参数,表示包含组件选项的对象。

Vue
<div id="app1">app1:{{title}}</div>
<div id="app2">app2:{{title}}</div>
<script>
var Vue2 = Vue.extend({
data(){
return {title:'fxxk'}
}
})
var vm1 = new Vue({el:'#app1'})
var vm2 = new Vue2({el:'#app2'})
</script>
4.Vue.set

Vue的核心具有一套响应式系统,简单来说就是通过监听器监听数据层的数据变化,当数据改变后,通知视图也自动更新。

Vue.set用于向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。

Vue
<div id="app">
<div>{{a}}</div>
<div>{{obj.b}}</div>
</div>
<script>
var vm = new Vue({
el:'#app',
data:{
a:'我是根响应式属性a',
obj:{}
}
})
Vue.set(vm.obj,'b','我是Vue.set添加的响应式属性obj.b')
</script>
5.Vue.mixin

Vue.mixin用于全局注册一个混入(Mixin),它将影响之后创建的每个Vue实例。

该接口主要是提供给插件作者使用,在插件中向组件注入自定义的行为。

该接口不推荐在应用代码中使用。

Vue
<div id="app">
</div>
<script>
Vue.mixin({
created(){
var myoption = this.$options.myoption
if(myoption){
console.log(myoption.toUpperCase())
}
}
})
var vm = new Vue({
myoption:'hello, vue'
})
</script>
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部