当前位置: 首页 > Web前端 > HTML

vue-Vue组件化编程

时间:2023-03-28 18:42:23 HTML

今天是对vue组件化最重要的单文件组件的一个认识,然后就可以学习脚手架了。应该是昨晚上传的,但是上传到博客园的那个用的Python脚本已经死了,所以我换了一个新的。组件化让我越来越体会到框架的强大1.模块与组件,模块化与组件化1.对组件的理解如果我们最初写网页的方式中依赖关系很混乱,我就不说了,所以为什么?还说代码重用率不高?我不是介绍了所有可重用的css和js吗?那是因为我们的html没有被重用。上下两页的顶部和底部是一样的。我能做的就是直接复制。注意,这里的复制不是复用组件可以做到的。它是每个功能的组合。它包含此功能所需的所有文件。如果想在其他地方复用,直接输入即可。==注意我们的html只是这部分的html部分====组件可以嵌套==,就像我们的一个section也可以细分为其他section==定义==:实现局部功能代码的集合(css、html、js)和资源(mp3、mp4、ttf等)模块:一个js文件就是一个模块组件:集合模块化:就是把一个庞大的js文件拆分成多个分支模块,共同完成一个功能(和之前的es6模块化编程一样)组件化:将一个网页按照不同的功能拆分成不同的组件2.非单文件组件==即一个文件(a.html)包含n个组件==单文件组件:一个文件(==a.vue==)只包含一个组件1.基本使用练习之前完成这么小的功能1.1创建组件显然我们上面的案例可以分为两个组件,students和schools,完成两个不同的功能。创建我们的组件有几点需要注意:首先,记住创建固定的写法,在vm实例外面写Vue.extend然后里面是一个配置对象,==我们之前说过一个组件是其实很像一个vminstance是的,确实很像。我们之前提到的监视方法、计算属性、自定义指令、过滤器等都可以在这里使用。它们中的大多数是相同的,但它们仍然有些不同。====第一个不同:我们创建组件不需要写配置项el。我们的组件不是为任何人单独使用而创建的。一个组件就是一块砖头,哪里需要搬到哪里去,而无论组件有多少,最终都会交由vm这个大哥来管理,所以由vm配置el来指定服务于谁==和那么数据配置项就不同了。==之前说过,el和data有两种形式。el是$mount,data可以简写成函数形式,但是返回值必须是一个对象,创建组件时,data必须写成函数形式。为什么,因为如果我在这个实例中要使用你的组件,另一个网页也需要使用这个组件。如果是对象的形式,占用的内存是一样的空间,你改改改,会影响对方,但是功能不一样,我用一个变量接收你的返回值,那么这个数据只属于我自己,他用一个变量来接收返回值,他还有一个属于我的数据,各自管理自己,各自改变自己,谁都不影响谁==我们分析过了之前我们的一个组件包含了js、css和html片段代码,这里只是js逻辑,我们还需要定义一个模板1.2注册组件一个全新的配置项==components==注意key的写法里面的-value对,里面的==属性名就是我们真正的组件名,后面的值就是我们刚刚取的Variable名,不过一般建议写一样的,因为可以直接写个简写方法====而且这是部分注册方式==1.3写componenttags以html标签的形式写入命名的组件名称,==nameFor:组件标签==每个组件化的标签数据是独立的,互不干扰1.4注册全局组件1.5注意事项==组件名称:==单词(全小写或首字母可以大写),多词(全小写或同前面自定义命令用-连接并返回原来用''包裹的属性名,还有一种首字母大写的方法所有单词包括首字母(但仅适用于脚手架环境))新的配置项==name==,可以指定开发者工具中使用的组件名称==组件标签可以缩写为自闭形式。==但是一定要在脚手架环境下==定义组件简写==直接简写一个对象,不要写Vue.extend2。组件的嵌套首先我们通常在vm中正式开发只有一个组件==app==这个组件会作为我们vm的代理来管理所有的组件。我们app管理的子组件有两个hello和school,所以我们需要在app中注册,并在app模板中写上组件标签,在school下有一个子组件student。同样需要注册在student下,其组件标签写在学校的模板中。最后,vm实例只有一个注册组件app,我们的html结构也只有一个组件标签。总之嵌套app要注意的一点是:==子组件一定要在父组件中写自己的component标签,在父组件中注册自己==,一直写到app结束,最后写上appinvm进去3.VueComponent的构造函数。我们的组件本质上是一个VueComponent构造函数。一旦我们Vue.extend,它会帮我们创建一个构造函数并将它赋值给这个变量。我们只需要在组件标签中写上/school>或者关闭标签,Vue在解析的时候会生成这个构造函数的实例,帮我们new出来==每次调用Vue.extend创建的构造函数是全新的==,可以分析源码发现每次Vue.extend都会新建一个Component的构造函数。newVue中的methods、computed、watch等函数的this指向的都是vm实例对象,==我们组件中的methods、computed、watch等里面的函数this指向的是VueComponent的实例对象,简称vc(只在课堂上出现,外面用的是组件实例对象),和vm基本一样,也有数据代理,数据劫持等==4.一个重要的内置关系==VueComponent.prototype.__proto__==Vue.prototype==心中的那条线需要构建。目的:让组件vc也使用vue原型上的属性和方法。3、单文件组件我们说一个组件.vue文件包括html、js、css,所以一个标准的单文件组件需要html(template标签)、js(script标签)、css(style标签)插件:==vetur==(pinewu)==安装后可以使用快捷键