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. [LOJ6469]Magic

    [LOJ6469]Magic 题目大意: 有\(n(n\le10^5)\)个物品,每个物品有一个权值\(w_i(w_i\le10^{18})\).求所有\(n\choose 2\)对物品\((i,j) ...

  2. mongoose+koa2 按照_id更新多条数据,删除数组中的字段,然后添加新的字段,$pull和$or结合使用

    await model.photo.update({ _id: { $in: photoIdsParam } }, { $pull: { customerIds: { code: custCode, ...

  3. [QTree6]Query on a tree VI

    Description: 给你一棵n个点的树,编号1~n.每个点可以是黑色,可以是白色.初始时所有点都是黑色.下面有两种操作请你操作给我们看: 0 u:询问有多少个节点v满足路径u到v上所有节点(包括 ...

  4. npm install出错,npm ERR! code EINTEGRITY npm ERR! Verification failed while extracting url-parse@1.4.3

    npm install时出现以下错误: npm ERR! code EINTEGRITY npm ERR! Verification failed while extracting url-parse ...

  5. [Codeforces394B]Very Beautiful Number(逆推)

    退役了吗? 退役了…… 但是以后也许还不会一下子离开OI吧 因为我真的很喜欢OI啊 只是实力不如人 为了考上一个学OI的高中 要努力啊! [本题] 一道很好的题目了(刷CF题看到的) 和394A一样, ...

  6. Shooting Contest 射击比赛 [POJ1719] [CEOI1997] [一题多解]

    Description(下有中文题意) Welcome to the Annual Byteland Shooting Contest. Each competitor will shoot to a ...

  7. JS 正则表达式深入

    1.零宽断言 断言指正则表达式可以指明在指定的内容前面或后面会出现满足规则的内容 零宽指的是断言只是匹配的表达式,不占据宽度,也不会出现在返回的匹配结果中 "<span class=& ...

  8. [Java]Java分层概念(转)

    service是业务层 action层即作为控制器 DAO (Data Access Object) 数据访问 1.JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分 ...

  9. 论文泛读 A Novel Ensemble Learning-based Approach for Click Fraud Detection in Mobile Advertising [1/10]

    title:新的基于集成学习的移动广告作弊检测 导语:基于buzzcity数据集,我们提出了对点击欺诈检测是基于一组来自现有属性的新功能的一种新方法.根据所得到的精度.召回率和AUC对所提出的模型进行 ...

  10. linux命令之free篇

    作业二: 1.free命令查看内存 [root@localhost 桌面]# free total used free shared buffers cachedMem: 1003432 899760 ...