vue组件创建学习总结
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<script src="vue.js"></script>
<body>
<div id="app">
<!-- 如果要使用组件,直接把组件的名称,以HTML标签的形式,引用到页面中去,即可 -->
<!-- 注意使用规则 -->
<!-- // 注意:如果使用vue.componentd定义全局组件的时候,组件使用了驼峰命名,则在引用的时候,需要把大写的驼峰改为小写字母同时,
// 在两个单词之间用-链接;如果不使用驼峰,则直接拿名称来使用即可 -->
<my-com1></my-com1>
<!-- <myCom1></myCom1> -->
</div>
<script>
// 1.使用vue.extend来创建全局组件
var com1= Vue.extend({
template:'<div><h1>这是直接用Vue.componet创建出来的组件</h1><span>123</span></div>'
// 通过temolate属性;指定了组件要展示的html结构
})
// 返回一个模板对象
// 1.2使用vue.componnet('组件名称',创建出来的组件模板对象);然后注册一个组件
Vue.component('myCom1',com1)
// 注意:如果使用vue.componentd定义全局组件的时候,组件使用了驼峰命名,则在引用的时候,需要把大写的驼峰改为小写字母同时,
// 在两个单词之间用-链接;如果不使用驼峰,则直接拿名称来使用即可
var vm=new Vue({
el:'#app',
data:{
msg:'父组件中的数据123'
},
})
</script>
</body>
</html>
简写方式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<script src="vue.js"></script>
<body>
<div id="app">
<!-- 如果要使用组件,直接把组件的名称,以HTML标签的形式,引用到页面中去,即可 -->
<!-- 注意使用规则 -->
<!-- // 注意:如果使用vue.componentd定义全局组件的时候,组件使用了驼峰命名,则在引用的时候,需要把大写的驼峰改为小写字母同时,
// 在两个单词之间用-链接;如果不使用驼峰,则直接拿名称来使用即可 -->
<my-com1></my-com1>
<!-- <myCom1></myCom1> -->
</div>
<script>
// 1.使用vue.extend来创建全局组件
// var com1= Vue.extend({
// template:'<div><h1>这是直接用Vue.componet创建出来的组件</h1><span>123</span></div>'
// // 通过temolate属性;指定了组件要展示的html结构
// })
// // 返回一个模板对象
// // 1.2使用vue.componnet('组件名称',创建出来的组件模板对象);然后注册一个组件
// Vue.component('myCom1',com1)
// 上面的写法可以简化为
Vue.component('myCom1',Vue.extend({
template:'<div><h1>这是直接用Vue.componet创建出来的组件</h1><span>123</span></div>'
// 通过temolate属性;指定了组件要展示的html结构
}))
// 注意:Vue.component第一个参数:组件的名称,将来在引用组件的时候,就是一个标签形式来引入它的
// 第二个参数是:Vue.extend创建的组件,其中tempalte就是组件将来要展示的html内容
var vm=new Vue({
el:'#app',
data:{
msg:'父组件中的数据123'
},
})
</script>
</body>
</html>
组件的创建方式第二种方式
vue.component
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="vue.js"> </script>
</head>
<body>
<div id="app">
<!-- 还是使用标签的形式引用自己的组件 -->
<mycom2></mycom2>
</div>
<script>
Vue.component('mycom2',{
template:'<div><h1>这是直接用Vue.componet创建出来的组件</h1><span>123</span></div>'
// 注意:无论是哪种方式创建的组件,组件的tempalte属性指向的模板内容,必须有且只能有唯一的一个根元素
})
var vm=new Vue({
el:'#app'
}) </script>
</body>
</html>
组件的创建方式第三种方式:把模板抽离出去的方式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="vue.js"> </script>
</head>
<body>
<div id="app">
<mycom3></mycom3>
</div>
<!-- 注意:在被控制的#app外面,使用template元素,定义组件的html模板结构 -->
<template id="temp1">
<div>
<h1>这是通过tempale元素,在外部定义的组件结构,这个方式,有代码的只能提示和高亮</h1>
<span>好用,不错</span>
</div>
</template>
<script>
Vue.component('mycom3',{
template:'#temp1'
})
var vm=new Vue({
el:'#app'
}) </script>
</body>
</html>
注意:以上是全局组件的创建方式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="vue.js"> </script>
</head>
<body>
<div id="app">
<mycom3></mycom3>
</div>
<div id="app2">
<mycom3></mycom3>
</div>
<!-- 注意:在被控制的#app外面,使用template元素,定义组件的html模板结构 -->
<template id="temp1">
<div>
<h1>这是通过tempale元素,在外部定义的组件结构,这个方式,有代码的只能提示和高亮</h1>
<span>好用,不错</span>
</div>
</template>
<script>
Vue.component('mycom3',{
template:'#temp1'
})
var vm=new Vue({
el:'#app'
})
var vm2=new Vue({
el:'#app2'
}) </script>
</body>
</html>
下面来看下怎么定义局部组件
使用components定义私有组件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="vue.js"> </script>
</head>
<body>
<div id="app">
<mycom2></mycom2>
<!-- <login></login> -->
<!-- 注释这里会报错,因为他是vm2实例的私有组件 -->
</div>
<div id="app2">
<mycom2></mycom2>
<login></login>
</div>
<script>
// 全局组件
Vue.component('mycom2',{
template:'<div><h1>这是直接用Vue.componet创建出来的全局组件</h1><span>123</span></div>'
// 注意:无论是哪种方式创建的组件,组件的tempalte属性指向的模板内容,必须有且只能有唯一的一个根元素
}) var vm=new Vue({
el:'#app'
});
var vm2 =new Vue({
el:'#app2',
components:{
// 定义实例内部的私有组件
login:{
// template:'#temp2'
template:'<h1>这是私有的login组件</h1>'
}
}
})
</script>
</body>
</html>
可以把私有组件的模板分离出去 改写成这样
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="vue.js"> </script>
</head>
<body>
<div id="app">
<mycom2></mycom2>
<!-- <login></login> -->
<!-- 注释这里会报错,因为他是vm2实例的私有组件 -->
</div>
<div id="app2">
<mycom2></mycom2>
<login></login>
</div>
<template id="temp2">
<h1>这是私有的login组件</h1>
</template>
<script>
// 全局组件
Vue.component('mycom2',{
template:'<div><h1>这是直接用Vue.componet创建出来的全局组件</h1><span>123</span></div>'
// 注意:无论是哪种方式创建的组件,组件的tempalte属性指向的模板内容,必须有且只能有唯一的一个根元素
}) var vm=new Vue({
el:'#app'
});
var vm2 =new Vue({
el:'#app2',
components:{
// 定义实例内部的私有组件
login:{
template:'#temp2'
// template:'<h1>这是私有的login组件</h1>'
}
}
})
</script>
</body>
</html>
vue组件创建学习总结的更多相关文章
- 黑马vue---56-58、vue组件创建的三种方式
黑马vue---56-58.vue组件创建的三种方式 一.总结 一句话总结: 不论是哪种方式创建出来的组件,组件的 template 属性指向的模板内容,必须有且只能有唯一的一个根元素 1.使用 Vu ...
- 使用VUE组件创建SpreadJS自定义单元格(二)
在上篇中,我们介绍了如何通过设置runtimeCompiler为true,在Vue中实现了动态创建电子表格组件.想了解具体内容可看点击查看使用VUE组件创建SpreadJS自定义单元格(一). 但是在 ...
- vue组件创建的三种方式
1.使用Vue.extend创建全局的Vue组件 //1.1 使用vue.extend创建组件 var com1 = Vue.extend({ //通过template属性指定组件要展示的html结构 ...
- Vue系列之 => vue组件创建
创建方式 一 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- vue 组件创建与销毁
vue 组件(如对话框组件)实时创建与销毁: 使用v-if <search-history :show="showSearchHistory" @close="sh ...
- Vue组件创建和组件传值
Vue创建组件的方式 使用Vue.Extend()和Vue.component全局注册组件 首先我们定义一个组件并接收 var com1 =Vue.extend({ template:"&l ...
- JS vue 组件创建过程
https://www.jianshu.com/p/3504a1edba42 vue.js原生组件化开发(一)——组件开发基础 0.3472017.05.09 12:00:54字数 1120阅读 33 ...
- 使用VUE组件创建SpreadJS自定义单元格(一)
作为近五年都冲在热门框架排行榜首的Vue,大家一定会学到的一部分就是组件的使用.前端开发的模块化,可以让代码逻辑更加简单清晰,项目的扩展性大大加强.对于Vue而言,模块化的体现集中在组件之上,以组件为 ...
- VUE组件的学习
参考:https://blog.csdn.net/baidu_23142899/article/details/79130225
随机推荐
- HDU 5965(三行扫雷 dp)
题意是在一个 3 行 n 列的图上进行扫雷,中间一行没有雷,且中间一行的每一格都会显示周围的雷数,问根据已知的雷数在上下两行设置地雷的方法数. 分析知每一列所填雷数的和与周围的雷数有关,但每列具体的填 ...
- word中中文保持正体,英文用斜体的方法.
有时候,大段的文字中夹杂着英文字母,英文需要斜体,如果一个接一个选中再斜体,费时费力,那么怎样快速实现文斜体中文不斜体呢? 工具/原料 word软件 方法/步骤 选中要修改的段落,替换-查找内容-特殊 ...
- 设置redis服务开机自启动
今天周一,一大早来公司开完会,就听到开发的同学说本地项目起不来了,叫我查下原因.想了下,他们本地项目只跟我们公司的一台内网服务器有关,那台服务器他们要用到的呢,也就只有mysql和redis这两个服务 ...
- eclipse hadoop环境搭建 查看HDFS文件内容
1.下载插件 hadoop-eclipse-plugin-2.5.2.jar放入eclipse/plugin 2.准备hadoop-2.5.0-cdh5.3.6 使用WinSCP远程连接虚拟机,复制h ...
- JSP起源
JSP起源: 在很多动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变. 如果使用Servlet程序来输出只有局部内容需要动态改变的网页,其中所有的静态内容也需要程序员用Java程 ...
- eclipse快捷键 (包括查找类、方法、变量)
♦[Ct rl+T] 搜索当前接口的实现类 1. [ALT +/] 智能提示 此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类.方法和属性的名字时 ...
- fiddler主要图标说明
主要图标含义说明: 正在将请求数据发往服务器 正在从服务器下载返回数据 请求过程中暂停 返回过程中暂停 请求中使用了HTTP HEAD方法; 返回中应该没有body内容 请求中使用了HTTP CONN ...
- Vue+SpringBoot+Mybatis的简单员工管理项目
本文项目参考自:https://github.com/boylegu/SpringBoot-vue 为了完成此项目你需要会springBoot,mybatis的一些基本操作 运行界面 第一步:搭建前端 ...
- bootstrap 解决弹出窗口(modal) 常见问题
无法使用键盘esc关闭窗口方法: 首先在modal容器的div中增加属性tabindex="-1",其次设置键盘ESC属性keyboard为true: 方法1:使用js打开窗口时 ...
- 【原创】大叔算法分享(5)聚类算法DBSCAN
一 简介 DBSCAN:Density-based spatial clustering of applications with noise is a data clustering algorit ...