Step1:Vue.extend()创建组件

Step2:Vue.component()注册组件,注册的标签一定要用小写

Step3:挂载点使用组件


<!doctype html>
<html> <head>
<meta charset="utf-8">
<title>3 Step 创建一个组件</title>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<script src="vue.js" type="text/javascript" charset="utf-8"></script>
</head> <body>
<div id="app1">
<!-- Step3:挂载点1使用组件 -->
<my-component></my-component>
</div>
<div id="app2">
<!-- Step3:挂载点2使用组件 -->
<my-component></my-component>
</div>
<div>
<!-- 这里不属于挂载点,所以不会显示! -->
<my-component></my-component>
</div>
<script type="text/javascript">
//Step1:创建组件
var myComponent = Vue.extend({
template: "<div>这是一个组件</div>"
})
//Step2:注册组件 在这里采用"全局注册"组件,也就是每个挂载点都可以使用组件
Vue.component('my-component', myComponent) new Vue({
el: '#app1', //挂载点1
})
new Vue({
el: '#app2' //挂载点2
})
</script>
</body> </html>

全局注册和局部注册

全局注册:

Vue.component('my-component', myComponent)

局部注册:

我们需要在声明挂载点的地方注入组件即可:

			new Vue({
el: '#app1',
components:{
'my-component', myComponent'
}
})

这样只能在挂载点为#app1地方使用my-component组件,在挂载点#app2的地方使用my-component组件就会报错。

语法糖创建并注册组件

<!doctype html>
<html> <head>
<meta charset="utf-8">
<title>3 Step 创建一个组件</title>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<script src="vue.js" type="text/javascript" charset="utf-8"></script>
</head> <body>
<div id="app1">
<!-- Step3:挂载点1使用组件 -->
<my-component></my-component>
</div>
<div id="app2">
<!-- Step3:挂载点2使用组件 -->
<my-component></my-component>
<hr>
<strong>使用语法糖创建并注册组件</strong>
<sugar-component></sugar-component>
</div>
<div>
<!-- 这里不属于挂载点,所以不会显示! -->
<my-component></my-component>
</div>
<hr >
<strong>使用语法糖在局部注册并创建多个组件</strong>
<div id="app3">
<sugar-component2></sugar-component2>
<sugar-component3></sugar-component3>
</div>
<script type="text/javascript">
//Step1:创建组件
var myComponent = Vue.extend({
template: "<div>这是一个组件</div>"
})
//Step2:注册组件 在这里采用"全局注册"组件,也就是每个挂载点都可以使用组件
Vue.component('my-component', myComponent) //Step2: 可以使用语法糖,省略Step1,“全局注册”组件的同时创建模板内容
Vue.component('sugar-component', {
template: '<div>这是用语法糖创建并注册的组件,这样就可以省略自己使用Vue.extend创建组件的步骤,系统会自动为我们使用Vue.extend去创建组件。</div>'
}) new Vue({
el: '#app1', //挂载点1
})
new Vue({
el: '#app2' //挂载点2
})
new Vue({
el: '#app3', //挂载点3,同样可以再局部使用语法糖创建并注册组件
components: {
'sugar-component2': {
template: '<div>这是使用语法糖在局部注册并创建组件的内容。</div>'
},
'sugar-component3': {
template: '<div>使用语法糖,在局部可以同时创建并注册“多个组件”的内容。</div>'
}
}
})
</script>
</body> </html>

Vue.js 3 Step 创建一个组件的更多相关文章

  1. vue.js入门(3)——组件通信

    5.2 组件通信 尽管子组件可以用this.$parent访问它的父组件及其父链上任意的实例,不过子组件应当避免直接依赖父组件的数据,尽量显式地使用 props 传递数据.另外,在子组件中修改父组件的 ...

  2. Vue.js 系列教程 2:组件,Props,Slots

    原文:intro-to-vue-2-components-props-slots 译者:nzbin 这是关于 JavaScript 框架 Vue.js 五个教程的第二部分.在这一部分,我们将学习组件, ...

  3. 每天记录一点:NetCore获得配置文件 appsettings.json vue-router页面传值及接收值 详解webpack + vue + node 打造单页面(入门篇) 30分钟手把手教你学webpack实战 vue.js+webpack模块管理及组件开发

    每天记录一点:NetCore获得配置文件 appsettings.json   用NetCore做项目如果用EF  ORM在网上有很多的配置连接字符串,读取以及使用方法 由于很多朋友用的其他ORM如S ...

  4. Vue.js 3.x 中跨层级组件如何传递数据?

    provide/inject 基本用法 在 Vue.js 中,跨层级组件如果想要传递数据,我们可以直接使用 props 来将祖先组件的数据传递给子孙组件: 注:上图来自 Vue.js 官网:Prop ...

  5. vue.js基础知识篇(6):组件详解

    第11章:组件详解 组件是Vue.js最推崇也最强大的功能之一,核心目标是可重用性. 我们把组件代码按照template.style.script的拆分方式,放置到对应的.vue文件中. 1.注册 V ...

  6. vue通过extend动态创建全局组件(插件)学习小记

    测试环境:nodejs+webpack,例子是看文章的,注释为自己的理解 创建一个toast.vue文件: <template> <div class="wrap" ...

  7. vue.js 二维码生成组件

    安装 通过NPM安装 npm install vue-qart --save 插件应用 将vue-qart引入你的应用 import VueQArt from 'vue-qart' new Vue({ ...

  8. Vue.js——理解与创建使用

    Vue.js 概念:是一个轻巧.高性能.可组件化的MVVM库,同时拥有非常容易上手的API,作者是尤雨溪是中国人. 优点: 1)易用 已经会了HTML,CSS,JavaScript?即刻阅读指南开始构 ...

  9. 前台框架vue.js中怎样嵌入 Echarts 组件?

    目前常用的图标插件有 charts,  Echarts, highcharts.这次将介绍 Echarts 在 Vue 项目中的应用. 一.安装插件 使用 cnpm 安装 Echarts cnpm i ...

随机推荐

  1. 《深入学习Redis(2):持久化》笔记

    参考 https://www.cnblogs.com/kismetv/p/9137897.html 一.高可用概述 提供正常服务:主从分离,快速容灾技术,数据容量的扩展.数据安全不会丢失.    持久 ...

  2. 如何去除inline-block的默认间距

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title&g ...

  3. 前端移动开发--viewpoint

    移动开发时,一般都会在头部加载这样一行meta标签 <meta name="viewport" content="width=device-width, initi ...

  4. UVA11540 Sultan's Chandelier Burnside 引理 + DP

    题目传送门 https://vjudge.net/problem/UVA-11540 https://uva.onlinejudge.org/index.php?option=com_onlineju ...

  5. 太恐怖了!黑客正在GPON路由器中利用新的零日漏洞

    即使在意识到针对GPONWi-Fi路由器的各种主动网络攻击之后,如果您还没有将其从互联网上带走,那么请小心,因为一个新的僵尸网络已加入GPON组织,该组织正在利用未公开的零日漏洞(零时差攻击). 来自 ...

  6. Hadoop的基础命令

    首次使用Hadoop时,格式化文件系统命令:hdfs namenode -format 启动HDFS:start-dfs.sh 启动YARN:start-all.sh start-all.sh等价于s ...

  7. Ubuntu14.04安装Ruby2.2方法

    直接使用系统的sudo apt-get install ruby2.0安装后,ruby -v显示ruby的版本依然是ruby 1.9. 以下方法可以顺序地在Ubuntu14.04安装Ruby2.2 s ...

  8. spring+springMVC+mybatis框架整合——配置文件说明

    如下图 web.xml配置说明: spring配置文件说明-1: spring配置文件说明-2: spring配置助记:  扫注(base) 读配(loc) 数据源(和comb(使用c3p0数据源)) ...

  9. webpack使用问题记录

    1.版本问题 webpack的安装并不是越新越好.当使用最新版本时不使用配置文件,直接编译不生成文件甚至报错:使用3.12版本时编译文件可以成功但是不生成新文件:使用 3.5.3 版本时成功且生成新文 ...

  10. 【PBFT】拜占庭容错

    共识机制堪称区块链的核心.我们知道,EOS.Hyperledger以及Stellar等著名的项目,都采用了BFT(拜占庭容错)共识机制,那么,BFT到底是什么鬼?和其它共识机制相比,又有什么优势和特点 ...