vue入门教程之-组件

欢迎关注博主公众号「java大师」, 专注于分享Java领域干货文章, 关注回复「资源」, 免费领取全网最热的Java架构师学习PDF, 转载请注明出处 https://www.javaman.cn/vue/vue-component

上一节我们讲了vue的属性、事件和双向绑定,今天我们来讲一下vue的组件component

1、为什么要用组件?

将一个页面的业务处理逻辑放在一起,处理和维护起来就会很复杂,不利于后续管理和扩展,这个时候就需要使用组件化来分门别类的管理逻辑·

2、全局组件

全局组件顾名思义,一次定义注册后Vue实例的作用范围内均可使用该组件

(1) html代码

 <div id="app">
<com1></com1>
</div>
<div id="app2">
<com1></com1>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script>
//定义一个com1组件,该组件的定义必须要在vm实例的上面定义,如果放在最下面则会报错!!!
//该组件在app和app2实例范围内均有效
Vue.component('com1',{
template:'<p>我是组件</p>'
}) var vm = new Vue({
el:"#app"
});
var vm2 = new Vue({
el:"#app2"
})
</script>

(2)运行结果如下图:

3、局部组件

局部组件顾名思义,只可在定义的Vue实例的作用范围内均可使用该组件

(1) html代码

 <div id="app">
<com2></com2>
</div>
<!-- app2内不存在com2,此结果不会打印 -->
<div id="app2">
<com2</com2>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script>
定义在vm实例内的components组件com2,作用域只在app内
var vm = new Vue({
el:"#app",
components:{
'com2':{
template:'<p>我是局部组件</p>'
}
}
});
</script>

(2)运行结果如下图:

4、通过Prop向子组件传递数据

组件增加props属性,组件新增属性传递给component的props达到传值的效果

(1) html代码

 <div id="app">
<h3>所学的课程:</h3>
<!-- v-bind绑定course和index属性,传递给study-course的props属性传入template模板中 -->
<study-course v-for="(item,index) in courses" v-bind:course="item" v-bind:index="index"></study-course>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script>
Vue.component('study-course',{
props:['index','course'],
template:'<li>{{index+1}}-----{{course}}</li>'
}) var vm = new Vue({
el:"#app",
data:{
//通过v-for传递给study-course在模板中进行解析
courses:['语文','数学','外语']
}
});
</script>

(2)运行结果如下图:

5、新建template模板

在idea中添加vue的component组件,单独将组件定义在一个文件中,在复用界面进行调用

(1) idea中添加vue的插件

(2) 创建一个vue-component

(2) html代码,新建zujian.vue文件,就创建了一个my-temp的模板并注册

 <template id="my-temp">
<p>我是单独的组件模板</p>
</template> <script>
Vue.component('zujian',{
template:'#my-temp'
})
</script> <style scoped> </style>

(2).vue文件需要通过npm运行,后面我们在单独讲运行方式

vue入门教程之-组件的更多相关文章

  1. vue入门教程 (vueJS2.X)

    vue入门教程vueJS2.X 写在前面 看完此教程可以达到:能看懂并能修改简单的vue项目. 看的过程中,请把所有例子都放到html文件中跑一遍. Vue.js 是什么 Vue.js(读音 /vju ...

  2. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  3. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  4. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  5. webpack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  6. webpack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  7. webpack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  8. VUE 入门教程

    http://www.runoob.com/w3cnote/vue-js-quickstart.html VUE安装教程 https://segmentfault.com/a/119000001218 ...

  9. vue入门:(组件)

    模板:(template)模板声明了数据和最终展现给用户的DOM之间的映射关系. 初始数据:(data)一个组件的初始数据状态.对于可复用的组件来说,通常是私有的状态. 接收外部参数:(props)组 ...

  10. Vue入门教程(2)

    小白入门学习vue和vue实例,vue总结 这就是我脑海中的 Vue 知识体系: 一句话概况了 Vue 通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件 Vue 的创建 我们的学习目的肯定 ...

随机推荐

  1. 并发编程-JUC的三个常用工具类

    1.CountDownLatch:减法计数器 代码实例 public class CountDownLatchTest { public static void main(String[] args) ...

  2. 转换流(InputStreamReader OutputStreamWriter)

    1.字节输出转换流(OutputStreamWriter) 1 package iochange; 2 3 import java.io.*; 4 5 /* 6 java.io.OutputStrea ...

  3. vue + elementui 分页切换页面,缓存页码

    问题场景 列表页面输入查询条件,选择第3页,点击详情进入详情页,从详情页返回时,默认列表页面页码重置为1:此时想要缓存该页码,有两种方式:可按业务场景使用 方式一:用vue自带的 keep-alive ...

  4. (C语言)我的第一个项目:命令行窗口下的学生成绩管理系统,及数据生成程序

    学生成绩管理系统 页面效果如图: 代码如下: #include <stdio.h> #include <stdlib.h> #include <string.h> ...

  5. idea启动springboot项目报错java.lang.ClassNotFoundException: com.gctl.bpm.GctlBpmApplication解决方案

    有时候父子工程改造springboot项目时会报错java.lang.ClassNotFoundException: com.gctl.bpm.GctlBpmApplication如下图所示 此时不要 ...

  6. 小知识:Oracle RAC添加服务名实现单节点访问

    环境:Oracle 11.2.0.4 RAC(2 nodes) 1.查看RAC IP配置信息 2.添加服务名并启动服务 3.停止服务并删除服务名 1.查看RAC IP配置信息 我们先查看下环境的IP分 ...

  7. 《Boosting Document-Level Relation Extraction by Mining and Injecting Logical Rules》论文阅读笔记

    代码 原文地址 摘要 文档级关系抽取(DocRE)旨在从文档中抽取出所有实体对的关系.DocRE 面临的一个主要难题是实体对关系之间的复杂依赖性.与大部分隐式地学习强大表示的现有方法不同,最新的 Lo ...

  8. react router component与render有什么区别?提升渲染性能,记一个react router component 误用导致请求死循环的有趣bug

    壹 ❀ 引 下午前端大佬突然私聊我,说发现了一个很有趣的bug,问我有没有兴趣,因为我平时会记录一些自认为有意思的问题,所以毫不犹豫就答应了,问题表现如下,当我们系统进入到某个页面下时,接口居然无止境 ...

  9. JS Leetcode 503. 下一个更大元素 II 题解分析,依旧单调栈做法解决此题

    壹 ❀ 引 我在JS Leetcode 496. 下一个更大元素 I 更清晰的图解单调栈做法一文中,介绍了单调栈做法解决下一个更大元素的问题,比较巧的是这道题还有升级版,题目来自Leetcode503 ...

  10. Office Online Server Windows Server 2016 部署

    一.准备"武器" 本文是通过虚拟机搭建 OOS 测试环境的,4567是3的前提,武器提取 le73 1.VMWare Workstation 17 Player 2.Windows ...