人面对复杂问题的处理方式:
复杂问题的处理
组件化也是类似的思想:
组件化的拆分
我们需要通过组件化的思想来思考整个应用程序:
组件化是Vue、React、Angular的核心思想,也是我们后续课程的重点(包括以后实战项目):
组件化开发
组件化思想的应用:
接下来,我们来学习一下在Vue中如何注册一个组件,以及之后如何使用这个注册后的组件。
如果我们现在有一部分内容(模板、逻辑等),我们希望将这部分内容抽取到一个独立的组件中去维护,这个时候如何注册一个组件呢?
我们先从简单的开始谈起,比如下面的模板希望抽离到一个单独的组件:
{{title}}
{{message}}
注册组件分成两种:
我们先来学习一下全局组件的注册:
我是组件标题
我是组件内容,哈哈哈哈
之后,我们可以在App组件的template中直接使用这个全局组件:
当然,我们组件本身也可以有自己的代码逻辑:
// 注册全局组件(使用app)
app.component("my-cpn", {
template: "#my-cpn",
data() {
return {
title: "我是标题",
message: "我是内容, 哈哈哈哈"
}
},
methods: {
btnClick() {
console.log("btnClick");
}
}
});
在通过app.component注册一个组件的时候,第一个参数是组件的名称,定义组件名的方式有两种:
方式一:使用kebab-case(短横线分割符)
app.component('my-component-name', {
/* ... */
})
方式二:使用PascalCase(驼峰标识符)
app.component('MyComponentName', {
/* ... */
})
全局组件往往是在应用程序一开始就会全局组件完成,那么就意味着如果某些组件我们并没有用到,也会一起被注册:
所以在开发中我们通常使用组件的时候采用的都是局部注册:
接下来,我们看一下局部组件是如何注册的:
{{title}}
{{message}}
{{title}}
{{message}}
在开发中通常我们都会注册局部组件,而不是全局组件。
目前我们使用vue的过程都是在html文件中,通过template编写自己的模板、脚本逻辑、样式等。
但是随着项目越来越复杂,我们会采用组件化的方式来进行开发:
所以在真实开发中,我们可以通过一个后缀名为 .vue 的single-file components (单文件组件) 来解决,并且可以使用webpack或者vite或者rollup等构建工具来对其进行处理。
在这个组件中我们可以获得非常多的特性:
如果我们想要使用这一的SFC的.vue文件,比较常见的是两种方式:
我们最终,无论是后期我们做项目,还是在公司进行开发,通常都会采用Vue CLI的方式来完成。
但是在学习阶段,为了让大家理解Vue CLI打包项目的过程,我会接下来穿插讲解一部分webpack的知识,帮助大家更好的理解Vue CLI的原理以及其打包的过程。