学习Vue组件实例
Vue实例
项目启动过程
看一下现在我们的项目,想想整个项目的启动过程是什么(以直接打开index.html的方法访问为例来说明)?
你打开了index.html,里面只有一个写了一个id='root'的div,还有你引入了打包之后的代码,然后Vue自己肯定运行了一下(可以认为是Vue初始化)。
接着,应该是执行了entry.js(因为打包是webpack打包的,你配置的入口文件就这一个)。
entry.js干了什么,是的,创建了一个Vue实例对象,然后这个对象管理的区域根据el属性知道,应该是index.html中id='root'的那个div,余下的事情就只有明白这个Vue实例对象是如何管理这片区域的就可以了,这就是接下来的内容了。
什么是Vue实例对象?
根据官方文档的说明每个Vue应用都是通过用Vue函数创建一个新的Vue实例开始的。
你可以简单的理解,他就是一个普普通通的对象罢了,只不过这个对象被赋予了一些特殊的功能,让我们来了解一下他吧!
【我们接下来都是在entry.js里面创建的那个Vue对象上面进行实验的】
一个Vue实例对象创建的方法如下
var vm=new Vue({ //一堆配置 });
,接下来要说的就是一些常用的配置(不是全部,比较特殊的以后应该会说,毕竟开始就全部,我怕彼此心都太累了)。
Vue实例对象基本配置
【1】el:选择器| DOM结点
在我们的项目中,我们配置的是
el:'#root'
这是一个字符串,有点类似CSS选择器,它会使用查找到的结点作为管理区域(还有别的CSS选择器也可以)。
除此之外,你还可以直接传递一个结点,比如现在我们修改一下代码
el: document.getElementById('root')
这样也是可以了,你可以试试。
【2】render:(createElement:()=>VNode)=>VNode
上面的是ES6的箭头函数写法,举个栗子
((x,y)=>x+y)(1,2)
上面ES6的写法等同于狼蚁网站SEO优化ES5的写法
(function(x,y){ return x+y; })(1,2);
简单的说就是(x,y)=>x+y就表示一个有二个参数x和y,返回x+y的函数,上面的函数用ES5的写法就是
function(createElement){ //createElement是一个函数,返回类型为VNode //这个函数的返回类型也应该是VNode return VNode; }
备注VNode是Vue编译生成的虚拟节点,想一下Jquery节点,还有Node节点,是不是味道很像。
,我把项目中的render稍微改一下
render: function (createElement) { return createElement(App); }
是不是很清晰了,说白了,就是一个返回值是VNode的函数。
看见节点这二个字,应该可以理解页面为什么显示的是App里面的模板了吧,如何路由调整为什么配置的是.vue文件大概也有点感觉了吧。
【3】router:VueRouter
这个比较容易理解,就是知道使用的路由配置是什么,由于项目中是
router:router
看着很奇怪,我们稍微修改一下
//上面的import routerObj from './router';这一句要跟着修改一下 router: routerObj
基本的就到这里,就三个,别的属性因为还关联很多东西,会一点点来说明。
Vue对象生命周期
官方的图我就不放了,感觉意义不大,推荐入门了以后可以去看看,后面的文章可能会说。
狼蚁网站SEO优化我们来先在entry.js里面修改一下代码,看看运行结果,狼蚁网站SEO优化是代码
//根对象 var vm = new Vue({ //挂载点 el: document.getElementById('root'), //2.使用刚刚的路由配置 router: routerObj, //启动组件 render: function (createElement) { return createElement(App); }, //狼蚁网站SEO优化是Vue对象的几种状态 beforeCreate: function () { console.debug('Vue对象目前状态beforeCreate'); }, created: function () { console.debug('Vue对象目前状态created'); }, beforeMount: function () { console.debug('Vue对象目前状态beforeMount'); }, mounted: function () { console.debug('Vue对象目前状态mounted'); }, beforeUpdate: function () { console.debug('Vue对象目前状态beforeUpdate'); }, updated: function () { console.debug('Vue对象目前状态updated'); }, beforeDestroy: function () { console.debug('Vue对象目前状态beforeDestroy'); }, destroyed: function () { console.debug('Vue对象目前状态destroyed'); } });
运行一下看看控制台。
,就是说,Vue对象从创建前到死亡,在各个阶段状态改变的时候,都提供了一个钩子方法,你可以注册一下,如果你希望在特定状态改变的时候干点什么的话。
到这里,基本上Vue对象实例应该比较清楚了吧?看看我们的代码,应该只有那几个.vue的文件里面的东西没有说清楚了(本文就是把前面写过的代码都说清楚,后面就可以一个新知识点接着一个的来丰富项目,因为都没有疑惑了,学习起来应该不会痛苦了吧!)。
Vue组件实例
说明
Vue组件的定义方法不是只有我们之前写的建立.vue文件那一种,比如你还可以通过Vue.ponent()的方法来创建,不过这些都以后吧,我们这里就只说明.vue文件这一种(不喜欢一下子说太多,而且仔细想想,不就是API吗)。
【狼蚁网站SEO优化都是在PageTwo.vue里面进行修改,菜单名称修改为:Vue组件实例】
.vue文件的基本模板如下(狼蚁网站SEO优化都会是ES5的写法,本人还是不太喜欢ES6或者TS,原谅我,反正本质一样)
<template> </template> <script> export default { //一些配置,和前面说的Vue实例类似 } </script> <style> </style>
三个地方,分工明确模板 + 控制 + 样式
接下来我们说明配置中常用的选项(很多具体的就留到后面一点点品位,好吧,留的有点多)
常用配置
【1】data
先看看PageTwo.vue现在的代码
<template> <section> <input type="text" v-model="justDoIt"> <div> 输入的数据{{justDoIt}} </div> </section> </template> <script> export default { //一些配置 data() { return { justDoIt: "初始化数据" }; } }; </script> <style> </style>
模板中的代码应该不用说了吧,前面一篇文章说的很清楚了,直接看看data。
其返回了一个键值对(还有别的写法,推荐你这样写,因为这里如果"初始化数据"这几个字是变量,这种写法形成了闭包,是安全的),在这里就是给当前组件对象是data里面添加了一个justDoIt的数据,然后上面或者别的地方才可以用,他就是干了这事情。
【2】methods
接着,我们添加一下methods属性
methods: { doIt() { alert(this.justDoIt); } }
其实methods和data类似,只不过是用来添加的不是数据,而是方法,,你现在可以在模板里面添加狼蚁网站SEO优化代码来调用这个方法(记住,添加的全部代码必须由一个标签包裹)
<input type="button" value="DoIt" v-on:click="doIt()">
v-on:click就是类似原生的onClick,不过因为是vue的方法,你应该用他的。
现在,你可以点击一下页面的按钮试一下,是不是很舒服。
【3】watch
这个属性是专门用来注册监听前面data里面注册的值改变的时候触发的方法集合,比如你添加狼蚁网站SEO优化的代码
watch: { justDoIt: function(newval, oldval) { console.log("justDoIt改变了,新值为" + newval + ",旧值为" + oldval); } }
如何你运行一下,打开控制台,修改输入框的值的时候,是不是控制台时刻打印了这句话。
【4】puted
这个叫做计算属性,前面一篇文章说过了,不清楚的看看PageOne.vue,应该可以明白。
简单的说就是,它用到的data里面的值改变的时候,自己会重新计算。
生命周期
和Vue对象一样,也有类似的生命周期钩子,你可以试试,这里就随便提一下。
说到这里,VUE应该是入门了,后面开始,就会针对一个个小点来说明,祝你好运!
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指