vue实例的参数说明

96
英俊又可爱XD
0.2 2018.03.22 13:03* 字数 838

vue实例中的参数与选项:

el:"#id", //DOM成员(1/3)

提供一个在页面上已存在的 DOM 元素作为 Vue 实例的挂载目标。

template:"<tag></tag>", //DOM成员(2/3)

一个字符串模板作为 Vue 实例的标识使用。模板将会 替换 挂载的元素。挂载元素的内容都将被忽略,除非模板的内容有分发 slot

render: (h)=>{h(App)}, //DOM成员(3/3)

字符串模板的代替方案,允许你发挥 JavaScript 最大的编程能力。

data //数据成员(1/6)

data():{ return{ } },
Vue实例的数据对象。Vue 将会递归将 data 的属性转换为 getter/setter,从而让 data 的属性能够响应数据变化

methods //数据成员(2/6)

methods:{ func(){ } }
methods将被混入到 Vue 实例中,可以直接通过 VM 实例访问这些方法,或者在指令表达式中使用
方法中的 this自动绑定为 Vue 实例

watch //数据成员(3/6)

watch:{ key:value $route:function (newValue, oldValue) { //监控路由 } }
整个为一个对象,键是需要观察的表达式,值是对应回调函数

computed //数据成员(4/6)

computed:{ getTotalCount(){ const totalCount=0; return totalCount; } },
vue的计算属性,将被混入到 Vue 实例中。所有 getter 和 setter 的 this 上下文自动地绑定为 Vue 实例

props //数据成员(5/6)

props:['counts','ids'],
用于父子组件的eventbus传值,是数组或对象,props的成员是子组件接收的来自父组件的数据

propsData //数据成员(6/6)

没用过。创建实例时传递 props。主要作用是方便测试

filters //资源(1/3)

filters('filterName',(input,function(){ return newvalue }))
包含 Vue 实例可用过滤器的哈希表。

directives //资源(2/3)

包含 Vue 实例可用指令的哈希表。

components //资源(3/3)

(即该组件的子实例)这里是包含 Vue 实例可用组件的哈希表。

name //杂项(1/6)

允许组件模板递归地调用自身。注意,组件在全局用 Vue.component() 注册时,全局 ID 自动作为组件的 name。

parent //杂项(2/6)

指定已创建的实例之父实例,在两者之间建立父子关系。子实例可以用 this.$parent 访问父实例,子实例被推入父实例的 $children 数组中。

mixins //杂项(3/6)

mixins 选项接受一个混合对象的数组。Mixin钩子按照传入顺序依次调用,并在调用组件自身的钩子之前被调用。

extends //杂项(4/6)

允许声明扩展另一个组件。这主要是为了便于扩展单文件组件。这和 mixins 类似,区别在于,组件自身的选项会比要扩展的源组件具有更高的优先级。

delimiters //杂项(5/6)

改变纯文本插入分隔符。

functional //杂项(6/6)

使组件无状态(没有 data )和无实例(没有 this 上下文)。他们用一个简单的 render 函数返回虚拟节点使他们更容易渲染。

生命周期钩子(10)
beforeCreate
//在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用。

 created
 //实例已经创建完成之后被调用。在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算, watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见

 beforeMount
 //在挂载开始之前被调用:相关的 render 函数首次被调用。

 mounted
 //el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。

 beforeUpdate
 //数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。你可以在这个钩子中进一步地更改状态,这不会触发附加的重渲染过程。

 updated
 //由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。当这个钩子被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作

activated
//keep-alive 组件激活时调用。

deactivated
//keep-alive 组件停用时调用。

 beforeDestroy
 //实例销毁之前调用。在这一步,实例仍然完全可用。

 destroyed
 //Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

main.js导入根组件,渲染根组件

导入根组件:

import Vue from 'vue';
import App from './App.vue';
import VueRouter from 'vue-router';
import ElementUI from 'element-ui';
import VueLazyload from 'vue-lazyload';
import VueMoment from 'vue-moment';
import Vuex from 'vuex';
import axios from 'axios';

//使用相对应的根组件
Vue.use(VueRouter);   //Vue.prototype.$route Vue.prototype.$router 
Vue.use(ElementUI);
Vue.use(VueLazyload, {
    loading: require('./statics/site/images/01.gif')  //懒加载的占位图
});
Vue.use(VueMoment);
Vue.use(Vuex);    //Vue.prototype.$store

//axios设定
axios.defaults.baseURL = "http://39.108.135.214:8899/";
Vue.prototype.$axios = axios;

//全局导入项目需要用到的css
import 'element-ui/lib/theme-chalk/index.css'
import "./statics/site/css/style.css"

创建根实例:

new Vue({
    el:"#app",
    router,
    store,
  render:function(createElement){ //render函数,用来渲染根组件
  return createElement(App)
    }
})

2018.3.22

VUE英俊的新手笔记