Vue实例 中的常用配置项
创建Vue实例时,使用 new Vue ({//配置项}) 或者 组件定义中 export default {//配置项},所有的Vue组件都是Vue实例,并且接受相同的选项对象(一些根实例特有的选项除外)
如:
new Vue({
//选项配置
el: '#app',
components: { App },
template: '<App/>'
})
配置项一共可以分为六大类:数据、DOM、生命周期钩子、资源、组合、其他
一、数据
(1)data:Vue根实例或者当前组件上的数据对象,类型可能是纯粹的object形式,但当为组件上的数据时,必须是function类型
当是Vue根实例上时:
new Vue ({
data: {
num: 3
}
})
当是组件上的数据时:
export default {
data: function () {
return {
num: 3
}
}
}
(2)computed:计算属性,根据data中的数据需要动态计算的属性。在new根实例和组件中使用的方法和含义都一样,不一一举例(以下所有配置不提名都代表一样)
new Vue({
data: {
a: 1
} ,
computed: {
dbA: function(){
return this.a * 2;
}
}
})
如上例中,计算属性dbA是由data数据中的属性得到,使用时和数据属性a是一样的,没有差距
(3)watch:侦听器,监视data中属性的变化,来做出反应
new Vue({
data: {
a: 1,
dbA:2
},
watch: {
a: function(val,oldVal){//监听a的变化,val为变化后的值,oldVal为变化之前的值
this.dbA = val *2
}
}
})
和计算属性进行对比可以发现,当有一些数据需要随着其他数据变化而变化时,计算属性和侦听器有时均可以实现,要优选计算属性,避免侦听器的滥用!但是当需要在数据变化时执行异步操作或者开销较大的操作时,要是用侦听器
(4)methods:方法的集合,用到的所有方法,定义在其中
new Vue({
data: {
a: 1
} ,
methods: {
clickBtn: function(){
this.a++;
}
}
})
(5)props:接受从父组件传过来的数据
在父组件中,使用子组件时:<child v-bind:data1="data1"></child>,通过v-bind把子组件中所需要的数据传递给子组件,在子组件中通过props来接受
子组件中props的格式一般为为:props:['data1','data2',....]或者是 props:{data1:data1Type,data2:data2Type,...}
export default {
data () {
return {
show: true
}
},
props: {
lists: Array
}
}
(6)porpsData:只能用在new创建的根实例中,主要作用是方便测试
二:DOM
(1)el:只有在new创建的根实例中才有,提供一个在页面上已存在的DOM元素作为Vue实例的挂载目标,可以是一个CSS选择器也可以是一个HTMLElement实例,一般选用CSS选择器中的id来标识
(2)template:一个字符串模板作为Vue实例的标识使用
new Vue({
el: '#app',
components: { App },
template: '<App/>'
})
(3)render:字符串模板的代替方案,允许你发挥 JavaScript 最大的编程能力。该渲染函数接收一个 createElement 方法作为第一个参数用来创建 VNode。
Vue 选项中的 render 函数若存在,则 Vue 构造函数不会从 template 选项或通过 el 选项指定的挂载元素中提取出的 HTML 模板编译渲染函数。
(4)renderError:当render函数遭遇错误时,提供的另外一种渲染输出
三:生命周期钩子
生命周期钩子即生命周期回调函数,常用的分为以下三种:
(1)初始化阶段(执行一次):
- beforeCreate(){},
- created(){},
- beforeMount(){},
- mounted(){},//初始化完成后触发,一般在该回调函数中发送ajax请求或者启动定时器等异步任务
(2)更新阶段(执行0~n次):
- beforeUpdated(){},
- updated(){}
(3)死亡阶段(执行1次):
- beforeDestroy(){},//做收尾工作,如:清除定时器
- destroyed(){}
四:资源
(1)components:注册vue实例中可用的组件,是object类型
<template>
<div class="container">
<!--使用组件-->
<vue-header/>
<Menu/>
</div> </template> <script>
//引入组件
import VueHeader from './components/Header'
import Menu from './components/Menu'
export default{
components: { //注册组件
VueHeader,
Menu
}
}
</script>
(2)directives:注册(自定义)局部指令,自定义的指令只有在当前vue实例中有效
语法:directives:{"diretiveName":function(){}}
(3)filters:定义本地过滤器
filters: {
capitalize: function (value) {
if (!value) return ''
value = value.toString()
return value.charAt(0).toUpperCase() + value.slice(1)
}
}
//除了上面在一个组件的选项中定义本地的过滤器,也可在在创建 Vue 实例之前全局定义过滤器
Vue.filter('capitalize', function (value) {
if (!value) return ''
value = value.toString()
return value.charAt(0).toUpperCase() + value.slice(1)
})
new Vue({
// ...
})
过滤器可以用在两个地方:双花括号插值和 v-bind 表达式
<!-- 在双花括号中 -->
{{ message | capitalize }} <!-- 在 `v-bind` 中 -->
<div v-bind:id="rawId | formatId"></div>
Vue实例 中的常用配置项的更多相关文章
- Vue 实例中的生命周期钩子
Vue 框架的入口就是 Vue 实例,其实就是框架中的 view model ,它包含页面中的业务处理逻辑.数据模型等,它的生命周期中有多个事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻 ...
- 详解Vue 实例中的生命周期钩子
Vue 框架的入口就是 Vue 实例,其实就是框架中的 view model ,它包含页面中的业务处理逻辑.数据模型等,它的生命周期中有多个事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻 ...
- 2-3 Vue实例中的数据,事件和方法
上节课模板是写在Vue的实例里面的,现在我们可以把它恢复出来.写在挂载点的内部,看起来会舒服一点.Vue的数据项,可以配置任意的数据名字. <!DOCTYPE html> <html ...
- Vue学习之vue实例中的数据、事件和方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue实例中created、mounted以及其他类型说明
生命周期图示(图片来自coderwhy老师): 每个 Vue 实例在被创建之前都要经过一系列的初始化过程.例如,实例需要配置数据观测(data observer).编译模版.挂载实例到 DOM ,然后 ...
- Vue实例中封装api接口的思路 在页面中用async,await调用方法请求
一般我们写小型的项目是用不到封装axios实例 但是当我们写大型项目时 接口有时候多到有上百个接口,那我们在请求一次调用一次接口,接口上好多都是重复的,这个时候我们就可以封装axios实例,既节省了 ...
- yarn 在Vue框架中的常用命令
初始化项目 yarn add init 安装vue yarn add vue 安装webpack,webpack-dev-server(是一个小型的Node.js Express服务器) yarn a ...
- Vue.js中的常用的指令缩写
Vue.js为两个最为常用的指令提供了特别的缩写: v-bind缩写 <!--完整语法--> <a v-bind:href="url">测试</a&g ...
- Vue开发中的常用技巧(持续更新)
1. 监听子组件的生命周期例如有父组件Parent和子组件Child,如果父组件监听到子组件挂载mounted就做一些逻辑处理,常规写法可能如下: // Parent.vue <Child @m ...
随机推荐
- Logstash和Flume-NG Syslog接收小测试
目前在大规模日志处理平台中常见的日志采集器可以采用Logstash或Flume.这两种日志采集器架构设计理念基本相似,都采用采集-过滤处理-输出的方式.下面对这两种采集器Syslog接收性能做个简单测 ...
- RTCM32编解码中的一些概念及相关文献阅读
1. IODC和 IODE —— 导航电文相关.iode/iodc是在GPS系统的ICD2中定义的参数,iode指星历数据事件,iodc指星钟数据事件. IOD 是 issue of data ,数 ...
- Zeal——好用的离线 API 文档大全!
介绍 作为一名程序员,工作中学习中免不了是要查询API文档的,毕竟我们能记住的东西有限,而且经常也会碰到某个API一时想不起来的情况,而每次还要打开网页去查询还是挺麻烦的,这时候拥有一个款好用的本地离 ...
- 学习python第四天——Oracle分组
1.分组的概念: 关键字:group by子句 结论:在select列表中如果出现了聚合函数,不是聚合函数的列,必须都要定义到group by子句的后面 需求: 查询公司各个部门的平均工资? sele ...
- 翻新并行程序设计的认知整理版(state of the art parallel)
近几年,业内对并行和并发积累了丰富的经验.有了较深刻的理解.但之前积累的大量教材,在当今的软硬件体系下.反而都成了负面教材.所以,有必要加强宣传,翻新大家的认知. 首先.天地倒悬,结论先行:当你须要并 ...
- ab网站压力测试命令的参数、输出结果的中文注解
ab命令原理 Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx.lighthttp.IIS等其它Web服务器的压力. ab命令对发出负载的计算机要求很低,既不会占用很 ...
- 1001. [BJOI2006]狼抓兔子【最小割】
Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一 ...
- access数据库及其分页的方法
首先access数据库的话,感觉针对比较小型的网站比较适合.携带方便,不需要按照特定的sql环境. 当然如果使用access数据库的话 1.首先你先要下载办公五合一(access也是其中之一) 2.w ...
- 神经网络中Epoch、Iteration、Batchsize相关理解
batch 深度学习的优化算法,说白了就是梯度下降.每次的参数更新有两种方式. 第一种,遍历全部数据集算一次损失函数,然后算函数对各个参数的梯度,更新梯度.这种方法每更新一次参数都要把数据集里的所有样 ...
- Week5:Neural Network BackPropagation疑难点记录
1.这个neural network 的costfunction 看起来很复杂,其实把连加化简,就是上面的普通代价函数在神经网络的应用,只不过把每一层都加起来了. 为什么要初始化θ值? 后向传播涉及的 ...