杭州网络网站建设,站长音效,建筑工程网校排行榜,有没有便宜的网站建设在Vue中#xff0c;开发者可以将页面中独立的、可重用的部分封装成组件#xff0c;对组件的结构#xff0c;样式和行为进行设置。组件是 Vue 的基本结构单元#xff0c;组件之间可以相互引用。 一.注册组件
当在Vue项目中定义了一个新的组件后#xff0c;要想在其他组件中…在Vue中开发者可以将页面中独立的、可重用的部分封装成组件对组件的结构样式和行为进行设置。组件是 Vue 的基本结构单元组件之间可以相互引用。 一.注册组件
当在Vue项目中定义了一个新的组件后要想在其他组件中引用这个新的组件需要对新的组件进行注册。在注册组件的时候需要给组件取一个名字从而区分每个组件可以采用帕斯卡命名法(PascalCase)为组件命名。
Vue 提供了两种注册组件的方式分别是全局注册和局部注册。接下来对这两种注册组件的方式分别进行讲解。 1.全局注册 在实际开发中如果某个组件的使用频率很高许多组件中都会引用该组件则推荐将该组件全局注册。被全局注册的组件可以在当前Vue项目的任何一个组件内引用。 在 Vue 项目的 src\main.js 文件中通过 Vue 应用实例的 component()方法可以全局注册组件该方法的语法格式如下。
component(组件名称需要被注册的组件) 上述语法格式中component()方法接收两个参数第1个参数为组件名称注册完成后即可全局使用该组件名称第2个参数为需要被注册的组件。 例如在 src\main.js 文件中注册一个全局组件 MyComponent示例代码如下。
import {createApp )from vue;
import./style.css
import App from./app.vue const app createApp(App)import MyComponent from ./components/MyComponent.vueapp.component(MyComponent,MyComponent)app.mount(#app) 在上述代码中第4行代码用于导入 MyComponent 组件;第5行代码用于创建Vue应用用实例;第6行代码用于将MyComponent组件注册为全局组件。 component()方法支持链式调用可以连续注册多个组件示例代码如下。
app.component(ComponentA, ComponentA)
.component (ComponentB, ComponentB)
.component(ComponentC,ComponentC) 2.局部注册 在实际开发中如果某些组件只在特定的情况下被用到推荐进行局部注册。局部注册即在某个组件中注册、被局部注册的组件只能在当前注册范围内使用。例如在组件A中注册了组件B则组件B只能在组件A中使用不能在组件C中使用。 局部注册组件的示例代码如下。
soript
import ComponentA from ./ComponentA.vue
export default{
components:{ ComponentA:ComponentA}
}/script 在上述代码中第4行代码用于将 ComponentA 组件局部注册到当前组件中。其中,冒号前面的ComponenA 是局部注册的组件名称冒号后面的ComponentA 是组件本身。由于冒号前后代码相同所以可以将(ComponentA:ComponentA }简写为{ComponentA}。 在使用 setup语法糖时导人的组件会被自动注册,无须手动注册导入后可以直接在模板中使用示例代码如下。
script setupimport ComponentA from./ComponentA.vue/script 上述代码完成了 ComponentA 组件的导入和注册。 二.引用组件 将组件注册完成后若要将组件在页面中渲染出来需要引用组件。默认情况下Vue项目中有一个根组件根组件可以引用其他组件引用后会形成父子关系--根组件是父组件被引用的组件是子组件。在子组件中也可以引用其他组件。 在组件的template标签中可以引用其他组件被引用的组件需要写成标签的形式,标签名应与组件名对应。组件的标签名可以使用短横线分隔或帕斯卡命名法命名。例如my-component标签和MyComponent标签都表示引用 MyComponent 组件。一个组件可以被引用多次但不可出现自我引用和互相引用的情况否则会出现死循环。 接下来通过实际操作的方式演示组件的使用方法具体步骤如下。
① 创建 src\components\ComponentUse.vue 文件具体代码如下。
template
h5父组件/h5
div classbox
/div/templatestyle.box{display: flex;}
/style 在上述代码中,第3~4行代码定义了 div 元素,该 div元素将作为被引用组件的容器:第7~9行代码用于将 div 元素设置为弹性盒子。
② 修改 sre\main.js文件切换页面中显示的组件具体代码如下。 template
div classglobal-container
h5全局组件/h5
/template
/divstyle
.global-container{
border: lpx solid black;
height: 50px;
flex: 1;
}
/style 在上述代码中第1~5行代码通过template标签定义 GlobalComponent 组件的模板:第6~12 行代码通过style标签定义 GlobalComponent 组件的样式。
④ 创建 src\components\LocalComponent.vue 文件表示局部组件具体代码如下。
template
div classlocal-container
h5局部组件/h5
/div/templatestyle
.local-container {
border: 1px dashed black;height: 50px;flex:1;}
/style 在上述代码中第1~5 行代码通过template标签定义 LocalComponent 组件的模板第6~12 行代码通过style标签定义 LocalComponent 组件的样式。
⑤ 修改 src\main.js 文件导人 GlobalComponent组件并调用 component( )方法全局注册ClobalComponent组件具体代码如下。
import { createApp }from vue
import ./style.css
import App from./components/ComponentUse.vue
import GlobalComponent from./components/GlobalComponent .vue
const app createApp(App)
app.component(GlobalComponent, GlobalComponent)
app.mount(#app) 在上述代码中,第4行代码通过 impont 语法导入 GlobalComponent 组件;第6行代码过调用 component()方法全局注册 GlobalComponent 组件。
⑥ 修改 srekcomponents\ComponentUse.vue 文件添加代码导人 LocalComponent 组件具体代码如下。 script setup
import LocalComponent from./LocalComponent .vue/script ⑦ 修改 srckcomponents\CcomponenUse.vue 文件在class为 box的div标签中引用GlobalComponent 组件和 LocalComponent 组件具体代码如下。
div classbox
GlobalComponent /
LocalComponent/
/div 在上述代码中,第2行和第3行代码分别在ComponentUse 组件中以标签的形式引用了GlobalComponent 组件和 LocalComponent 组件。 保存上述代码后在浏览器中访问 http://127.0.0.1:51731,引|用组件后的页面效果如图所示。 从图可以看出在ComponentUse 组件中成功引用了 GlobalComponent 组件和LocalComponent组件页面中显示了GlobalComponent组件和 LocalComponent 组件的内容。 感谢大家的阅读如有不对的地方可以私信我感谢大家