首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
1.1 什么是Vue.js
1.1.1 Vue.js简介
1.1.2 MVVM开发模式
1.1.3 Vue.js的特点
1.2 安装Vue.js
1.2.1 使用CDN
1.2.2 使用NPM
1.2.3 使用Vue CLI
1.3 Vue.js 3.0的新特性
1.4 WebStorm的下载和安装
1.4.1 WebStorm的下载
1.4.2 WebStorm的安装
1.5 第一个Vue.js程序
2.1 块级声明
2.1.1 let声明
2.1.2 const声明
2.2 模板字面量
2.2.1 多行字符串
2.2.2 字符串占位符
2.3 默认参数和rest参数
2.3.1 默认参数
2.3.2 rest参数
2.4 解构赋值
2.4.1 对象解构
2.4.2 数组解构
2.5 展开运算符
2.6 对象字面量语法扩展
2.6.1 对象初始化的简写
2.6.2 对象方法的简写
2.6.3 动态属性名
2.7 箭头函数
2.7.1 语法
2.7.2 箭头函数中的this
2.8 Promise
2.9 类
2.9.1 创建类和实例
2.9.2 类的构造函数
2.9.3 在类中添加方法
2.9.4 类的继承
2.9.5 静态成员
2.10 模块
2.10.1 模块概述
2.10.2 ES6中的模块
3.1 应用程序实例及选项
3.1.1 数据
3.1.2 方法
3.1.3 生命周期钩子
3.2 插值
3.2.1 文本插值
3.2.2 插入HTML
3.2.3 绑定属性
3.2.4 使用表达式
3.3 指令
3.3.1 参数
3.3.2 动态参数
3.3.3 修饰符
当前位置:
首页>>
技术小册>>
Vue.js从入门到精通(一)
小册名称:Vue.js从入门到精通(一)
### 2.1 块级声明:Vue.js中的组件构建基石 在Vue.js的广阔世界里,组件是构建复杂应用的基础单元。它们不仅提高了代码的可复用性,还促进了应用的模块化与可维护性。而“块级声明”作为组件设计中的一个核心概念,指的是在Vue中通过模板(template)、脚本(script)、样式(style)等区块来声明组件的结构、逻辑与样式,这种声明方式使得组件的各部分职责清晰,易于理解和维护。本章节将深入探讨Vue.js中的块级声明,包括其基本概念、使用场景、最佳实践以及在实际项目中的应用。 #### 2.1.1 理解块级声明的概念 在Vue.js中,一个组件通常包含三个主要部分:模板(template)、脚本(script)、样式(style),这三个部分共同构成了组件的完整声明。 - **模板(Template)**:定义了组件的HTML结构,是用户界面的直接体现。Vue的模板语法允许开发者在HTML中嵌入JavaScript表达式,使用指令(如`v-bind`、`v-model`、`v-if`等)来控制DOM的渲染与更新。 - **脚本(Script)**:包含了组件的逻辑部分,如数据定义、计算属性、方法、生命周期钩子等。脚本部分使用JavaScript编写,是组件行为的核心。 - **样式(Style)**:定义了组件的样式,可以是内联样式、`<style>`标签内的CSS,或是通过`@import`引入的外部样式表。Vue支持作用域样式(Scoped CSS),确保样式只应用于当前组件,避免全局污染。 #### 2.1.2 块级声明的优势 1. **高内聚低耦合**:通过将结构、逻辑、样式封装在同一个组件内,实现了高内聚,减少了组件间的耦合度,使得组件更加独立和可重用。 2. **易于维护**:清晰的区块划分使得开发者可以快速定位问题所在,无论是修改界面布局、调整逻辑还是优化样式,都能迅速找到对应部分进行修改。 3. **促进模块化开发**:Vue.js鼓励开发者将应用拆分成多个小型、可复用的组件,每个组件都遵循块级声明的原则,这极大地促进了模块化开发,使得大型应用的管理变得更加容易。 4. **提升开发效率**:组件的复用性减少了重复编码的需要,开发者可以专注于新功能的开发,而不是重复编写相同的代码。 #### 2.1.3 块级声明的实践 ##### 2.1.3.1 模板的编写 Vue模板是声明式的,它告诉Vue如何渲染DOM。在模板中,你可以使用Vue的指令来绑定数据、监听事件等。例如: ```html <template> <div class="hello-world"> <h1>{{ msg }}</h1> <button @click="reverseMessage">Reverse Message</button> </div> </template> ``` 这里,`{{ msg }}`是数据绑定,`@click="reverseMessage"`是事件监听。 ##### 2.1.3.2 脚本的编写 脚本部分定义了组件的数据、方法、计算属性等。例如: ```javascript <script> export default { data() { return { msg: 'Hello Vue!' } }, methods: { reverseMessage() { this.msg = this.msg.split('').reverse().join(''); } } } </script> ``` ##### 2.1.3.3 样式的编写 样式部分定义了组件的CSS样式。Vue支持作用域样式,确保样式只作用于当前组件: ```html <style scoped> .hello-world h1 { color: blue; } </style> ``` #### 2.1.4 最佳实践 1. **保持组件简洁**:尽量保持组件的简洁性,避免一个组件承担过多职责。 2. **合理使用props与events**:通过props向子组件传递数据,通过events向父组件发送消息,保持组件间的通信清晰。 3. **利用插槽(Slots)**:插槽允许父组件向子组件插入HTML内容,增强了组件的灵活性和可复用性。 4. **性能优化**:注意避免不必要的DOM操作,合理使用计算属性、侦听器(watchers)和Vue的响应式系统来优化性能。 5. **文档与注释**:为组件编写清晰的文档和注释,方便其他开发者理解和维护。 #### 2.1.5 实际应用案例 假设我们正在开发一个博客系统,其中包含一个文章列表组件。这个组件需要展示文章标题、作者和发布时间,并提供一个按钮用于查看文章详情。 ```html <!-- ArticleList.vue --> <template> <div class="article-list"> <ul> <li v-for="article in articles" :key="article.id"> <h3>{{ article.title }}</h3> <p>By {{ article.author }} - {{ article.publishedAt | formatDate }}</p> <button @click="viewArticle(article)">View Details</button> </li> </ul> </div> </template> <script> export default { props: ['articles'], methods: { viewArticle(article) { // 假设有一个方法或路由用于查看文章详情 this.$router.push({ name: 'ArticleDetail', params: { id: article.id } }); } }, filters: { formatDate(value) { // 格式化日期 return new Date(value).toLocaleDateString(); } } } </script> <style scoped> .article-list ul { list-style-type: none; padding: 0; } .article-list li { margin-bottom: 20px; } </style> ``` 在这个例子中,`ArticleList`组件通过`props`接收文章列表数据,使用`v-for`指令遍历并展示每篇文章的标题、作者和发布时间。同时,通过`@click`监听器绑定了一个方法`viewArticle`,用于处理查看文章详情的逻辑。样式部分则定义了组件的CSS样式,确保列表的样式符合设计要求。 通过本章节的学习,你应该对Vue.js中的块级声明有了更深入的理解,并掌握了如何在Vue组件中运用模板、脚本和样式来构建功能丰富、结构清晰的Web应用。
上一篇:
1.5 第一个Vue.js程序
下一篇:
2.1.1 let声明
该分类下的相关小册推荐:
Vue.js从入门到精通(三)
vue项目构建基础入门与实战
移动端开发指南
Vue源码完全解析
Vue3技术解密
TypeScript和Vue从入门到精通(二)
Vue面试指南
Vue.js从入门到精通(二)
TypeScript和Vue从入门到精通(五)
TypeScript和Vue从入门到精通(四)
TypeScript和Vue从入门到精通(三)
Vue.js从入门到精通(四)