Vue系列之 => 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>
<script src="./lib/jquery2.1.4.min.js"></script>
<script src="./lib/Vue2.5.17.js"></script>
<link href="https://cdn.bootcss.com/animate.css/3.7.0/animate.css" rel="stylesheet">
</head> <body>
<div id="app">
<!-- 如果要使用组件,直接把组件的名称以HTML标签的形式,引入到页面中即可 -->
<!-- 注册组件使用的驼峰命名,在引用的时候要用 - 分开并转换成小写 -->
<my-com1></my-com1>
</div>
<script>
// 1.1 使用Vue.extend来创建全局的Vue组件。
var com1 = Vue.extend({
template : '<h1>这是组件化的</h1>'
})
//1.2 使用Vue.component('组件的名称,创建出来的组件模板对象)
Vue.component('myCom1',com1) //另一种写法
// Vue.component('myCom1',Vue.extend({
// template : '<h1>这是组件化的</h1>'
// })) var vm = new Vue({
el: '#app',
data: {},
methods: { },
})
</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="./lib/jquery2.1.4.min.js"></script>
<script src="./lib/Vue2.5.17.js"></script>
<link href="https://cdn.bootcss.com/animate.css/3.7.0/animate.css" rel="stylesheet">
</head> <body>
<div id="app">
<!-- 使用标签形式引入组件 -->
<mycom2></mycom2>
</div>
<script>
Vue.component('mycom2',{
// 任何方式创建的组件必须只能有一个根元素
// 错误 :-> template : '<h1>这是组件化的</h1><span>123</span>'
template : '<div><h1>这是组件化的</h1><span>123</span></div>'
}) var vm = new Vue({
el: '#app',
data: {},
methods: { },
})
</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="./lib/jquery2.1.4.min.js"></script>
<script src="./lib/Vue2.5.17.js"></script>
<link href="https://cdn.bootcss.com/animate.css/3.7.0/animate.css" rel="stylesheet">
</head> <body>
<div id="app">
<!-- 以标签的形式 引用组件 -->
<mycom3></mycom3>
</div> <!-- 在被VUE控制的app外层,使用template元素定义组件的模板结构 -->
<template id="tmp">
<div>
<h1>这是通过template元素在外部定义的组件结构,这个方式有代码的智能提示和高亮</h1>
<h4>这是一个h4标签</h4>
</div>
</template> <script>
Vue.component('mycom3',{
template : '#tmp'
})
var vm = new Vue({
el: '#app',
data: {},
methods: { },
})
</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="./lib/jquery2.1.4.min.js"></script>
<script src="./lib/Vue2.5.17.js"></script>
<link href="https://cdn.bootcss.com/animate.css/3.7.0/animate.css" rel="stylesheet">
</head> <body>
<div id="app1">
<login></login>
</div> <div id="app">
<!-- 以标签的形式 引用组件 -->
<mycom3></mycom3>
</div> <!-- 在被VUE控制的app外层,使用template元素定义组件的模板结构 -->
<template id="tmp">
<div>
<h1>这是通过template元素在外部定义的组件结构,这个方式有代码的智能提示和高亮</h1>
<h4>这是一个h4标签</h4>
</div>
</template>
<template id="tmp1">
<div>
<h1>这是私有组件template渲染的</h1>
</div>
</template>
<script>
Vue.component('mycom3',{
template : '#tmp'
})
var vm = new Vue({
el: '#app',
data: {},
methods: { },
}) var vm2 = new Vue({
el : '#app1',
data : {},
methods : {},
filters : {}, //过滤器
directives : {}, //指令
components : { //私有组件
// login 组件名
login : {
template : '#tmp1'
}
}, // 钩子函数
beforeCreate() {},
created(){},
beforeMount(){},
mounted(){},
beforeUpdate(){},
updated(){},
beforeDestroy(){},
destroyed(){},
})
</script>
</body> </html>
Vue系列之 => vue组件创建的更多相关文章
- Vue系列:Vue Router 路由梳理
Vue Router 是 Vue.js 官方的路由管理器.它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌.包含的功能有: 嵌套的路由/视图表 模块化的.基于组件的路由配置 路由参数. ...
- Vue系列---理解Vue.nextTick使用及源码分析(五)
_ 阅读目录 一. 什么是Vue.nextTick()? 二. Vue.nextTick()方法的应用场景有哪些? 2.1 更改数据后,进行节点DOM操作. 2.2 在created生命周期中进行DO ...
- vue系列---理解Vue中的computed,watch,methods的区别及源码实现(六)
_ 阅读目录 一. 理解Vue中的computed用法 二:computed 和 methods的区别? 三:Vue中的watch的用法 四:computed的基本原理及源码实现 回到顶部 一. 理解 ...
- Vue系列之 => 父组件向子组件传值
父组件向子组件传递数据 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta c ...
- Vue 系列(一): Vue + Echarts 开发可复用的柱形图组件
目录 前置条件 安装echarts 引入echarts 柱形图组件开发 在何时初始化组件? 完整的代码 记得注册组件!!! 本文归柯三(kesan)所有,转载请注明出处 https://www.cnb ...
- Vue系列——在vue项目中使用echarts
该示例使用 vue-cli 脚手架搭建 安装echarts依赖 npm install echarts -S 或者使用国内的淘宝镜像安装 npm install -g cnpm --registry= ...
- [js高手之路] vue系列教程 - vue的基本用法与常见指令(1)
本系列课程选用vue的版本为1.0.21, 什么是vue? vue是由尤雨溪开发的一款基于MVVM的框架,M->模型,V->视图, 也就是说模型数据改变了,视图也跟着改变, 视图内容改变, ...
- vue系列之vue cli 3引入ts
插件 Vue2.5+ Typescript 引入全面指南 vue-class-component强化 Vue 组件,使用 TypeScript/装饰器 增强 Vue 组件 vue-property-d ...
- [js高手之路] vue系列教程 - vue的事件绑定与方法(2)
一.在vue中,绑定事件,用v-on:事件类型, 如绑定一个点击事件, 我们可以这样子做 window.onload = function () { var c = new Vue({ el : 'b ...
随机推荐
- Joda Time - 强大易用的日期和时间库
Joda-Time提供了一组Java类包用于处理包括ISO8601标准在内的date和time.可以利用它把JDK Date和Calendar类完全替换掉,而且仍然能够提供很好的集成. Joda-Ti ...
- ps命令参数
1.查看父进程ps -ef |grep <进程名>在显示的输出中,第三列就是该进程的父进程PID,然后可以再使用ps命令来查看父进程的名称ps -ef |grep <父进程PID&g ...
- javascript替代Array.prototype.some操作
Array.prototype.some在低版本浏览器好像不太兼容,下列是替代方法 一. for 循环 const initIds: any[] = [1,2,3]; const Ids: any[] ...
- 配置svn用户及密码
配置账户及密码 格式: user=passwd 配置新的账户 [root@mysql conf]# vim passwd 创建两个账户 [root@mysql conf]# egrep -v &q ...
- MongoDB pymongo模块 删除数据
使用user集合,删除user集合的数据 import pymongo mongo_client = pymongo.MongoClient( host='192.168.0.112', port=2 ...
- Java基础知识(JAVA中String、StringBuffer、StringBuilder类的区别)
java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题.现在总结一下,看看他们的不同与相同. 1.可变与不可 ...
- NginxI/O模型理论基础
I/O模型介绍 同步IO 关注的是消息通信机制 调用者需要等待被调用者先执行完毕才能往下继续执行 被调用者在执行完自己的任务后并不会同之调用者执行结果需要调用者自己去获取被调用者的执行状态 异步 ...
- 多线程之共享变量.md
共享变量 - 共享变量:当多个线程同时访问一个变量的时候,会产生共享变量的问题 - 案例11 - 解决变量:锁.信号灯: - 锁(Lock): - 是一个标志,表示一个线程在占用一些资源 - 使用方法 ...
- 004-Quartz存储与持久化-基于quartz.properties的配置
一.概述 Quartz提供两种基本作业存储类型.第一种类型叫做RAMJobStore,第二种类型叫做JDBC作业存储.在默认情况下Quartz将任务调度的运行信息保存在内存中,这种方法提供了最佳的性能 ...
- vuex 子组件传值
以下是基础的使用方法,详细且深入使用方法详细见博客:https://segmentfault.com/a/1190000015782272 Vuex官网地址:https://vuex.vuejs.or ...