Vue----vue 组件的构成

news/2024/7/10 1:31:03 标签: Vue, vue.js, 前端, 前端框架, vue

文章目录

  • 4 vue 组件的构成
    • 4.1 vue 组件组成结构
    • 4.2 组件的 template 节点
      • 4.2.1 在 template 中使用指令
      • 4.2.2 在 template 中定义根节点
    • 4.3 组件的 script 节点
      • 4.3.1 script 中的 name 节点
      • 4.3.2 script 中的 data 节点
      • 4.3.3 script 中的 methods 节点
    • 4.4 组件的 style 节点
      • 4.4.1 让 style 中支持 less 语法


vue__3">4 vue 组件的构成

vue__4">4.1 vue 组件组成结构

每个 .vue 组件都由 3 部分构成,分别是:

template -> 组件的模板结构
script -> 组件的 JavaScript 行为
style -> 组件的样式

其中,每个组件中必须包含 template 模板结构,而 script 行为和 style 样式是可选的组成部分。

4.2 组件的 template 节点

vue 规定:每个组件对应的模板结构,需要定义到<template> 节点中。

<template>
  <!-- 当前组件的 DOM 要定义到 template 标签内 -->
</template>

注意:<template> vue 提供的容器标签,只起到包裹性质的作用,它不会被渲染为真正的 DOM 元素。

4.2.1 在 template 中使用指令

在组件的 <template>节点中,支持使用前面所学的指令语法,来辅助开发者渲染当前组件的 DOM 结构。

4.2.2 在 template 中定义根节点

vue 2.x 的版本中,<template>节点内的 DOM 结构仅支持单个根节点。

<template>
  <div>
	<!-- 当前组件的 DOM 要定义到 template 标签内的 div 标签内 -->
  </div>
</template>

vue 3.x 的版本中,<template> 中支持定义多个根节点:

<template>
	<!-- 当前组件的 DOM 要定义到 template 标签内 -->
  	<div>
		<h1></h1>
 	</div>
 	<h2></h2>
</template>

4.3 组件的 script 节点

vue 规定:组件内的 <script>节点是可选的,开发者可以在 <script>节点中封装组件的 JavaScript 业务逻辑。

<script >节点的基本结构如下:

<script>
//今后,组件相关的 data数据、methods方法等,
//都需要定义到export default所导出的对象中。
export default {}
</script>

4.3.1 script 中的 name 节点

可以通过 name 节点为当前组件定义一个名称:

<script>
export default {
	//name属性指向的是当前组件的名称(建议:每个单词的首字母大写>
	name: 'My![请添加图片描述](https://img-blog.csdnimg.cn/b92cb4ad79c54fb0b69d26b355ee2fb6.png)
App'
}
</script>

在使用 vue-devtools 进行项目调试的时候,自定义的组件名称可以清晰的区分每个组件:

4.3.2 script 中的 data 节点

vue 组件渲染期间需要用到的数据,可以定义在 data 节点中。

vue 规定:组件中的 data 必须是一个函数,不能直接指向一个数据对象。

<template>
  <h1>App 组件</h1>
</template>

<script>
export default {
  name: 'App',
  data() {
    return {
      username: 'zs'
    }
  }
}
</script>

<style>

</style>`

4.3.3 script 中的 methods 节点

组件中的事件处理函数,必须定义到 methods 节点中。

<template>
  <h1>App 组件</h1>
</template>

<script>
export default {
  name: 'App',
  data() {
    return {
      username: 'zs'
    }
  },
  methods: {
    sayHello() {
      console.log( 'Hello' )
    }
  }
}
</script>

<style>

</style>

4.4 组件的 style 节点

vue 规定:组件内的 <style>节点是可选的,开发者可以在 <style>节点中编写样式美化当前组件的 UI 结构。<script > 节点的基本结构如下:

<style lang="css">
  h1 {
    color: aquamarine;
  }
</style>

其中

4.4.1 让 style 中支持 less 语法

如果希望使用 less 语法编写组件的 style 样式,可以按照如下两个步骤进行配置:

① 运行 npm install less -D 命令安装依赖包,从而提供 less 语法的编译支持

npm install less -D

② 在 <style>标签上添加 lang=“less” 属性,即可使用 less 语法编写组件的样式

<style lang="less" scoped>
  h1 {
    color: aquamarine;
    span {
      color: aqua;
    }
  }
</style>

其中,scoped 表示 style 中的样式只在该组件内生效。


http://www.niftyadmin.cn/n/563751.html

相关文章

论程序设计语言的学习方法

从刚刚进大学的对程序设计语言的一窍不通到现在已经能敲出一些简单的代码去执行某种算法&#xff0c;机算某些复杂的问题。自己的学习方法主要分为三大类。 一&#xff0c;对于长难的代码要分段解析 代码的执行是按照顺序一步步来&#xff0c;一个难的代码可以分为很多个小块去…

Vue----vue-router 3.x 的基本使用步骤

文章目录2.2 vue-router 3.x 的基本使用步骤2.2.1 在项目中安装 vue-router2.2.2 创建路由模块2.2.3 导入并挂载路由模块2.2.4 声明路由链接和占位符2.2.5 声明路由的匹配规则2.2.6 完成代码main.jsApp.vuesrc/router/index.js2.2 vue-router 3.x 的基本使用步骤 ① 安装 vue-r…

论程序语言学习方法

从刚刚进大学的对程序设计语言的一窍不通到现在已经能敲出一些简单的代码去执行某种算法&#xff0c;机算某些复杂的问题。自己的学习方法主要分为三大类。 一&#xff0c;对于长难的代码要分段解析 代码的执行是按照顺序一步步来&#xff0c;一个难的代码可以分为很多个…

如何看懂代码

我们在写程序时&#xff0c;有不少时间都是在看别人的代码。例如看小组的代码&#xff0c;看小组整合的守则&#xff0c;若一开始没规划怎么看&#xff0c;就会出问题。不管是参考也好&#xff0c;从开源抓下来研究也好&#xff0c;为了了解箇中含意&#xff0c;在有限的时间下…

Vue----vue-router 4.x 的基本使用步骤

文章目录2.3 vue-router 4.x 的基本使用步骤2.3.1 在项目中安装 vue-router2.3.2 定义路由组件2.3.3 声明路由链接和占位符2.3.4 创建路由模块2.3.4.1 从 vue-router 中按需导入两个方法2.3.4.2 导入需要使用路由控制的组件2.3.4.3 创建路由实例对象2.3.4.4 向外共享路由实例对…

小白如何学习代码

第一关、计算机基础知识体系&#xff0c;任何一个软件开发工程师&#xff0c;都需要熟知计算机基础知识。这一关必须过&#xff0c;当然也有跳过的&#xff0c;认为其太简单&#xff0c;跳关了。结果呢&#xff0c;就是在你的职业生涯中会遇到很多问题&#xff0c;你根本不知从…

Vue----vue-router 的高级用法

文章目录3 vue-router 的高级用法3.1 路由重定向3.2 嵌套路由3.2.1 嵌套路由的实现步骤3.2.2 声明子路由链接和子路由占位符3.2.3 通过 children 属性声明子路由规则3.2.4 默认子路由3.3 动态路由匹配3.3.1 动态路由的使用3.3.2 $route.params 参数对象3.3.3 使用 props 接收路…

Vue -- 编程式路由导航

文章目录1. 声明式导航 & 编程式导航1.1 声明式导航1.2 编程式导航2. vue-router 中的编程式导航 API2.1 常用的编程式导航 API2.2 \$router.push与\$router.replace2.3 $router.go2.4 $router.back() & $router.forward()3. 总结 编程式路由导航1. 声明式导航 & 编…