Vue 构造选项

作者: fanison | 来源:发表于2020-05-12 22:09 被阅读0次

Vue 构造选项

Options

数据: data、props、methods、computed、watch

DOM:el、 template、render、renderError

生命周期钩子: created、mounted、updated、destroyed、beforeCreate、beforeMount、beforeUpdate、beforeDestroy、activated、deactivated、errorCaptured

资源:directives、components、filters

组合:mixins、extends、provide、inject、parent

其他

el挂载点

  • 类型:string | Element
  • 限制:只在用 new 创建实例时生效
  • 可以用$mount
new Vue({
  render:h=>h(App)
}).$mount('#app');

new Vue({
  el:'#app',
  render:h=>h(App)
});

data 内部数据

  • 类型:Object | Function
  • 限制:组件的定义只接受 function
  • 优先使用函数
函数
new Vue({   
  //data: function(){}
  data(){    
    return {
       n:0
    }
  }
})

对象
new Vue({    
  data:{ n:0 }
})

methods 方法

  • 类型:{ [key: string]: Function }
  • 注意,不应该使用箭头函数来定义 method 函数 (例如 plus: () => this.a++)。理由是箭头函数绑定了父级作用域的上下文,所以 this 将不会按照期望指向 Vue 实例,this.a 将是 undefined
<div>
  {{n}}
  <button @click="add">+1</button>
  {{filter()}}  
    // {{filter(array)}}
    // {{array.filter(i => i%2 === 0)}}  js数组filter方法
</div>

new Vue{
  data(){
    return{
      n:0,
      array:[1,2,3,4,5,6]
    },
  },
  methods:{
    add(){ 
      this.n += 1
    },
    filter(){
      return this.array.filter( i => i%2 === 0)
    }
    // filter(array){ array.filter( i => i%2 === 0) }
  }
}

components

  • 类型:Object
  • 详细:包含 Vue 实例可用组件的哈希表 Vue组件
  • 三种引入方式 : 推荐第一种
import Demo from './Demo.vue'
new Vue({
  components:{ Demo }  //{Demo:Demo}
})
<div>
  <Demo/>
</div>


Vue.component('Demo2',{
  template:`
    <div>demo2</div>
  `
})
<div>
  <Demo2/>
</div>


new Vue({
  components:{ 
     Demo3:{
       template: `<div>demo3</div>`
     }
  }
})
<div>
  <Demo3/>
</div>

Prop 外部数据

  • 也叫属性
  • message="n" 传入字符串
  • :message="n" 传入this.n数据
  • :fn="add" 传入this.add函数
Vue.component('Demo', {
  props: ['message','fn'],
  template:'
    {{ message }}
    <button @click="fn">call fn</button>
  '
})

new Vue({
  data:{
    n: 0
  },
  template:`
    <div>
      <Demo message="hello"/>
      <Demo :message="n" :fn="add"/>
    </div>
  `,
  methods:{
    add(){ this.n += 1 }
  }
})

Destroyed

 import Demo from './Demo.vue'  
 new Vue({
   components:{ Demo },  
   data:{ visible = true },
   template:`
    <div>
      <button @click="toggle">toggle</button>
      <hr>
      <Demo v-if="visible === true"/>
    </div>
   `,
   methods:{
      toggle(){
        this.visible = !this.visible 
      }
   }
 }).$mount('#app')

相关文章

  • render函数的一些小知识

    Vue 选项中的 render 函数若存在,则 Vue 构造函数不会从 template 选项或通过 el 选项指...

  • vue:构造选项

    vue实例jq选择元素,得到一个jq实例就是对象,封装了jq的操作 这就是构造vue的实例,实例会根据选项得出一个...

  • Vue 构造选项

    Vue 构造选项 Options 数据: data、props、methods、computed、watch DO...

  • Vue构造选项

    什么是vue实例 ①const vm = new Vue(options)②new Vue(options)以上两...

  • Vue构造选项

    Vue实例 new Vue (options)就是构造一个Vue的实例 把Vue的实例命名为vm是尤雨溪的习惯,我...

  • Vue2学习笔记:vue实例

    一、实例化vue 二、添加实例化选项 三、扩展vue构造器 四、属性与方法 五、vue实例选项与原生js的关系 六...

  • Vue.extend扩展实例构造器

    Vue.extend Vue.extend 返回的是一个“扩展实例构造器”,也就是预设了部分选项的Vue实例构造器...

  • 说说 Vue.js 实例及数据绑定能力

    1 创建实例 通过 Vue() 构造函数就可以创建一个 Vue 的根实例: 1.1 el 选项 el 选项用于绑定...

  • Vue 概览

    构造器 每个 Vue 程序的开始都是由构造函数 Vue 创建实例: 选项包含数据、模板、挂载元素、方法、生命周期钩...

  • Vue.extend构造器的延伸(10)

    一、Vue.extendVue.extend 返回的是一个“扩展实例构造器”,也就是预设了部分选项的Vue实例构造...

网友评论

    本文标题:Vue 构造选项

    本文链接:https://www.haomeiwen.com/subject/toqwnhtx.html