Vue 创建组件的方式

2018年08月07日 11:10:56 虔诚带着决然 阅读数:1015
 
版权声明:本文为博主原创文章,未经博主允许不得用做其他商业活动。 https://blog.csdn.net/weixin_42218847/article/details/81477836

方式一

 <!--1.1使用Vue.extend来创建全局的Vue组件-->
var tem1 = Vue.extend({
template:'<h3>这是使用 Vue.extend 创建的组件</h3>' //指定组件要展示的HTML结构
});
<!--1.2使用Vue.component('组件名称',创建出来的组件模板对象)-->
Vue.component('myTem1',tem1); /*
<!--注意-->
使用 Vue.component() 定义全局组件的时候,
组件名称使用 驼峰命名,则在引用组件的时候,需要把大写改为小写,并且用 '-'将单词连接
组件名称不使用驼峰命名,则直接拿名称来使用即可
*/ <!--组合方式-->
Vue.component('myTem1',Vue.extend({
template : '<h3>这是使用 Vue.extend 创建的组件</h3>'
})) <div id="app">
<!-- 如果要使用组件,直接把组件的名称以 HTML 标签的形式,引入到页面中-->
<my-tem1> </my-tem1>
</div>

方式二

直接使用Vue.component()

   Vue.component('mycom2',{
template : '<h3>这是使用 Vue.component 创建的组件</h3>'
})

但是这样写会有一个问题:

<!--在h3标签后紧接一个span标签的话就会出问题了-->
<h3>这是使用 Vue.component 创建的组件</h3> <span>123</span>

这个问题是在 组件template属性指向的模板内容,必须有且只能有唯一的一个根元素
所以修改代码如下:

Vue.component('mycom2',{
template :
'<div>
<h3>这是使用 Vue.component 创建的组件</h3> <span>123</span>
</div>'
})

运行结果如下:

不过这种方式也有一个瑕疵,就是template 属性的值是HTML标签,而在软件中,并没有智能提示,容易出错,若使用这种方式,需要仔细,避免出错

方式三

<!--1.定义组件:-->
Vue.component('mycom3',{
template : '#tem1'
}); <!--2.在被控制的 #app 外面使用 template 元素,定义组建的HTML模板结构-->
<div id="app">
<!--3. 引用组件 -->
<mycom3></mycom3>
</div> <template id="tem1">
<div>
<h1>这是 template 元素</h1>
<span>这种方式好用</span>
</div>
</template>

运行结果如下:

这是Vue创建组件(全局)的3种方式,其实相差不多,希望对大家有所帮助

Vue 创建组件的方式
[Vue chuàngjiàn zǔjiàn de fāngshì]
How Vue creates components
 

Vue 创建组件的方式的更多相关文章

  1. vue创建组件的方式

    一.直接通过Vue.extend的方式创建组件 // 通过vue.extend 来创建全局组件 var com1 = Vue.extend({ template:'<h3>这是h3组件&l ...

  2. vue创建组件的几种方法

    <html> <head> <title>vue创建组件</title> <meta charset="utf-8"> ...

  3. vue创建组件

    vue创建组件是很容易的: js: Vue.component("component-item",{   //component-item就是我们在HTML页面上引用的组件,它会在 ...

  4. Vue创建组件的三种方式

    1.使用 Vue.extend 来创建全局的Vue组件 <div id="app"> <!-- 如果要使用组件,直接,把组件的名称,以 HTML 标签的形式,引入 ...

  5. Vue 创建组件的两种方法

    地址:https://blog.csdn.net/cofecode/article/details/74634301 创建组件的两种方法 1.全局注册 2.局部注册 var child=Vue.ext ...

  6. vue中组件传值方式汇总

    在应用复杂时,推荐使用vue官网推荐的vuex,以下讨论简单SPA中的组件间传值. 一.路由传值 路由对象如下图所示: 在跳转页面的时候,在js代码中的操作如下,在标签中使用<router-li ...

  7. react创建组件的几种方式及其区别

    react创建组件有如下几种方式 ①.函数式定义的无状态组件 ②.es5原生方式React.createClass定义的组件   ③.es6形式的extends React.Component定义的组 ...

  8. React创建组件的三种方式及其区别

    内容转载于http://www.cnblogs.com/wonyun/p/5930333.html React推出后,出于不同的原因先后出现三种定义react组件的方式,殊途同归; 具体的三种方式: ...

  9. 301-React Ext-React创建组件的三种方式及其区别

    一.概述 React推出后,出于不同的原因先后出现三种定义react组件的方式,殊途同归:具体的三种方式: 函数式定义的无状态组件 es5原生方式React.createClass定义的组件 es6形 ...

随机推荐

  1. 字节跳动冬令营网络赛 D.The Easiest One(贪心 数位DP)

    题目链接 \(x:\ 11010011\) \(y:\ 10011110\) (下标是从高位往低位,依次是\(1,2,...,n\)) 比如对于这两个数,先找到最高的满足\(x\)是\(0\),\(y ...

  2. C# virtual、abstract

    (1) virtual:修饰的方法必须有实现 abstract:修饰的方法一定不能实现 (2) virtual:可被子类重写, 子类中必须用overide修饰 abstract:必须被子类重写 (3) ...

  3. C++程序设计方法6:算法横向拆分

    例子1:负载监视器,如何在一个程序中实现对这些不同条件的适应呢? int main() { WindowDisplay display; Monitor monitor(&display); ...

  4. 【NOI2015】【BZOJ4196】软件包管理器 - 题解

    Description Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖( ...

  5. django之模板继承以和模板导入

    1,模板继承 一,模板继承 1.在template下面新建一个master.html的文件,当做母版. 2. 母版里需要被替代的部分,以block开始,以endblock结尾 {% block con ...

  6. java 遍历Map的4种方法

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  7. ASP.NET WebAPI数据传输安全HTTPS实战项目演练

    一.课程介绍 HTTPS是互联网 Web 大势所趋,各大网站都已陆续部署了 HTTPS .  全站HTTPS时代,加密用户与网站间的交互访问,在客户端浏览器和Web服务器之间建立安全加密通道,一般情况 ...

  8. Unity3d XmlException: Text node cannot appear in this state的方案

    这个问题是utf-8编码的问题,如果是utf-8+bom那么就会出现这种问题,如果是单纯的utf-8就没有这种问题(当然如果你把他完全变成ansi,那也行) 我在读写xml的时候遇到这个问题.查了好久 ...

  9. 简单了解weblogic配置文件

    WebLogic的启动是通过启动文件来完成的 包括启动管理服务器(startWebLogic) 启动被管服务器(startManagedWebLogic) 设置域环境(setDomainEnv) 关闭 ...

  10. 关于EOF的使用的好文章

    Linux shell脚本EOF妙用 https://blog.csdn.net/zongshi1992/article/details/71693045