今天是对vue组件化的一个理解,最主要的单文件组件,然后就可以脚手架的学习了,本来昨晚就该上传的,但是用的那个上传博客园的Python脚本不行了,换了一个新的。
组件化让我越来越感觉到框架的力量了

一.模块与组件,模块化与组件化

1.对组件的理解

如果以我们原来编写一个网页的方式

vue - Vue组件化编程

依赖关系混乱我就不说了,那为什么还要说代码复用率不高呢?能复用的css、js我不都引入了吗?那是因为我们html没有复用,上面和下面两个页面顶部和底部相同,我能做的是直接 复制 注意这里是复制不是复用

vue - Vue组件化编程

组件能做的事情,就是把每个功能进行了一个组合,里面包含这个功能所需要的所有文件,其他地方如果要复用,直接进入即可,注意我们html只是单独这一部分的html部分

二.非单文件组件

即一个文件(a.html)中包含n个组件

单文件组件:一个文件(a.vue)只包含一个组件

1.基本使用

完成这样一个小功能以前的做法

vue - Vue组件化编程

1.1创建组件

很明显我们上面的案例可以分为学生和学校两个组件,完成不同的两个功能。

vue - Vue组件化编程

创建我们的组件有几个注意点:

1.2注册组件

vue - Vue组件化编程

一个全新的配置项 components注意里面写键值对的方式,里面的属性名才是我们真正的组件名,后面的值只是我们刚才取的变量名,但是一般推荐都写一样,因为可以直接写一个简写方式

而且这是局部注册方式

1.3编写组件化标签

将命名好的组件名字以html标签形式写上,名为:组件标签

vue - Vue组件化编程

每个组件化标签数据是分开的,互不干扰

vue - Vue组件化编程

1.4注册全局组件

vue - Vue组件化编程

1.5注意点

2.组件的嵌套

首先我们一般正规开发在vm下只有一个组件 app这个组件会代理我们vm会管理所有组件,我们app管理的子组件有两个hello和school,所以要把他们注册在app里面,并把组件标签写在app的template里面,school下面有一个子组件student,同样的他要注册在student下面,他的组件标签写在school的template里面,最终vm实例只有一个注册组件,app,我们的html结构也只有一个组件标签,app

总之嵌套要注意的一点就是:子组件一定要把自己的组件标签写在父组件里面,把自己注册在父组件里面,一直写到app结束,最后把app写在vm里面去

vue - Vue组件化编程

vue - Vue组件化编程

vue - Vue组件化编程

3.VueComponent构造函数

4.一个重要的内置关系

VueComponent.prototype.proto == Vue.prototype 心里那根线要搭建起来

vue - Vue组件化编程

目的:让组件vc也可以用到vue原型上的属性和方法

三.单文件组件

我们说过一个组件.vue的文件是包含html、js、css在内的,所以一个标准的单文件组件,需要html(template标签)、js(script标签)、css(style标签)

插件:vetur(pine wu)安装了后可使用快捷键<v直接回车,快速生成一个一个单文件组件模板

vue - Vue组件化编程

vue - Vue组件化编程

没样式可以不写样式

vue - Vue组件化编程

发表回复