最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

详解Vue.js组件可复用性的混合(mixin)方式和自定义指令

来源:动视网 责编:小采 时间:2020-11-27 22:30:52
文档

详解Vue.js组件可复用性的混合(mixin)方式和自定义指令

详解Vue.js组件可复用性的混合(mixin)方式和自定义指令:混合是什么 混合 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混合对象可以包含任意组件选项。以组件使用混合对象时,所有混合对象的选项将被混入该组件本身的选项。 例如: var tpl1={ template:'#stpl1', data:fun
推荐度:
导读详解Vue.js组件可复用性的混合(mixin)方式和自定义指令:混合是什么 混合 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混合对象可以包含任意组件选项。以组件使用混合对象时,所有混合对象的选项将被混入该组件本身的选项。 例如: var tpl1={ template:'#stpl1', data:fun


混合是什么

混合 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混合对象可以包含任意组件选项。以组件使用混合对象时,所有混合对象的选项将被混入该组件本身的选项。

例如:

var tpl1={
 template:'#stpl1',
 data:function(){
 return {msg:false}
 },
 methods:{
 msgf:function(){
 this.msg=!this.msg
 }
 }
}
var tpl2={
 template:'#stpl2',
 data:function(){
 return {msg:false}
 },
 methods:{
 show:function(){
 this.msg=true
 },
 hide:function(){
 this.msg=false
 }
 }
}
new Vue({
 el:'#box',
 components:{
 tpla:tpl1,
 tplb:tpl2,
 }
})

我们会发现,两个组件中的数据大多数相同,这是我们可以将它们进行混合

// 首先,定义一个混合对象
var mymixin = {
 data:function(){
 return {msg:false}
 },
 methods:{
 show:function(){
 this.msg=true
 },
 hide:function(){
 this.msg=false
 },
 msgf:function(){
 this.msg=!this.msg
 }
 }
}
var tpl1={
 template:'#stpl1',
 minins:[mymixin]
}
var tpl2={
 template:'#stpl2',
 minins:[mymixin]
}
// 如果我们需要在第一个组件定义data为true时,我们可以直接在组件内定义,他会覆盖mixin的data
var tpl1={
 template:'#stpl1',
 minins:[mymixin],
 data:function(){
 msg:true
 }
}

自定义指令

除了默认设置的核心指令( v-model 和 v-show ),Vue 也允许注册自定义指令。注意,在 Vue2.0 里面,代码复用的主要形式和抽象是组件——然而,有的情况下,你仍然需要对纯 DOM 元素进行底层操作,这时候就会用到自定义指令。

// 注册一个全局自定义指令 v-focus
Vue.directive('focus', {
 // 当绑定元素插入到 DOM 中。
 inserted: function (el) {
 // 聚焦元素
 el.focus()
 }
})

也可以注册局部指令,组件中接受一个 directives 的选项:

directives: {
 focus: {
 // 指令的定义---
 }
}

然后你可以在模板中任何元素上使用新的 v-focus 属性:

<input v-focus>

文档

详解Vue.js组件可复用性的混合(mixin)方式和自定义指令

详解Vue.js组件可复用性的混合(mixin)方式和自定义指令:混合是什么 混合 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混合对象可以包含任意组件选项。以组件使用混合对象时,所有混合对象的选项将被混入该组件本身的选项。 例如: var tpl1={ template:'#stpl1', data:fun
推荐度:
标签: VUE 的方式 组件
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top