vue组件大集合 component

  vue组件分为全局组件、局部组件和父子组件,其中局部组件只能在el定义的范围内使用, 全局组件可以在随意地方使用,父子组件之间的传值问题等。

  1.   Vue.extend 创建一个组件构造器
  2.   template:‘‘  组件要显示的内容
  3.   component(‘‘,);  注册组件,接收两个参数,第一个参数用来使用的标签,第二个参数标识要显示内容的构建器

  详情请看vue的API:  http://v1-cn.vuejs.org/guide/components.html

一、简单的组件

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8" />
 5         <title>孙三峰-博客园</title>
 6         <script type="text/javascript" src="js/vue.js" ></script>
 7     </head>
 8     <body>
 9         <div id="box">
10             <aaa></aaa>
11         </div>
12     </body>
13     <script type="text/javascript">
14         var AAA = Vue.extend({        //创建一个组件构造器
15             template:‘<strong>123</strong>‘    //组件要显示的内容
16         });
17         //var a = new AAA();    相当于又new了一个Vue,具有它的所有属性(一般不用这种方法)
18         Vue.component(‘aaa‘,AAA);    //注册组件
19         new Vue({
20             el:‘#box‘,
21             data:{
22                 bSign:true
23             }
24         })
25     </script>
26 </html>

二、给组件添加事件

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8" />
 5         <title>孙三峰-博客园</title>
 6         <script type="text/javascript" src="js/vue.js" ></script>
 7     </head>
 8     <body>
 9         <div id="box">
10             <aaa></aaa>
11         </div>
12     </body>
13     <script type="text/javascript">
14         Vue.component(‘aaa‘,{
15             data(){
16                 return {
17                     msg:‘我是p标签‘
18                 };
19             },
20             methods:{
21                 sj:function(){
22                     alert(111);
23                 }
24             },
25             template:‘<p @click="sj()">{{msg}}</p>‘    //接收的data值必须是函数的形式,函数必须返回一个对象
26         })
27         new Vue({
28             el:‘#box‘,
29             data:{
30
31             },
32         })
33     </script>
34 </html>

 三、vue动态组件--选项卡

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8" />
 5         <title>组件选项卡--孙三峰博客园</title>
 6         <script type="text/javascript" src="js/vue.js" ></script>
 7     </head>
 8     <body id="box">
 9         <input type="button" @click="s=‘suning‘" value="选项卡1" /><!--is后面跟着组件的名称 -->
10         <input type="button" @click="s=‘saning‘" value="选项卡2" />
11         <comment :is=‘s‘></comment>
12     </body>
13     <script type="text/javascript">
14          new Vue({
15              el:‘#box‘,
16              data:{
17                  s:‘suning‘
18              },
19              components:{
20                  ‘suning‘:{
21                      template:‘<p>选项卡1</p>‘
22                  },
23                  ‘saning‘:{
24                      template:‘<p>选项卡2</p>‘
25                  }
26              },
27          })
28     </script>
29 </html>

 四、路由的嵌套

 1 <html>
 2     <head>
 3         <title>vue-router--孙三峰的博客</title>
 4         <script type="text/javascript" src="js/vue.js" ></script>
 5         <script type="text/javascript" src="js/vue-resource.js" ></script>
 6         <script type="text/javascript" src="js/vue-router.js" ></script>
 7     </head>
 8     <style>
 9         .v-link-active{
10             color: red;
11         }
12     </style>
13     <body>
14         <div id="box">
15             <ul>
16                 <li>
17                     <a v-link="{path:‘/home‘}">首页</a>
18                 </li>
19                 <li>
20                     <a v-link="{path:‘/news‘}">新闻</a>
21                 </li>
22             </ul>
23             <div>
24                 <router-view></router-view><!-- 展示内容-->
25             </div>
26         </div>
27         <template id="home">
28             <h3>home</h3>
29             <a v-link="{path:‘/home/login‘}">登陆</a>
30             <a v-link="{path:‘/home/reg‘}">注册</a>
31             <router-view></router-view>
32         </template>
33         <template id="news">
34             <h3>新闻</h3>
35             <div>
36                 <a v-link="{path:‘/news/detail/001‘}">新闻001</a>
37                 <a v-link="{path:‘/news/detail/002‘}">新闻002</a>
38             </div>
39             <router-view></router-view>
40         </template>
41         <template id="detail">
42             <!--{{$route | json}}-->
43             {{$route.params | json}}    <!-- 关于$route请看五,$route的参数 -->
44         </template>
45     </body>
46     <script>
47         var App = Vue.extend();
48         var Home = Vue.extend({
49             template:‘#home‘
50         });
51         var News = Vue.extend({
52             template:‘#news‘
53         });
54         var Detail = Vue.extend({
55             template:‘#detail‘
56         });
57         var router = new VueRouter();
58         router.map({
59             ‘home‘:{
60                 component:Home,
61                 subRoutes:{
62                     ‘login‘:{
63                         component:{
64                             template:‘你点击了登陆‘
65                         }
66                     },
67                     ‘reg‘:{
68                         component:{
69                             template:‘你点击了注册‘
70                         }
71                     }
72                 }
73             },
74             ‘news‘:{
75                 component:News,
76                 subRoutes:{
77                     ‘/detail/:id‘:{
78                         component:Detail
79                     }
80
81                 }
82             },
83         });
84         router.redirect({
85             ‘/‘:‘/home‘
86         })
87         router.start(App,‘#box‘);
88     </script>
89 </html>

五、$route的参数

  • $route中包含路由的其他信息
  • $route.params 得到当前的参数
  • $route.path 得到当前的路径
  • $route.query 得到数据
时间: 2024-10-12 04:32:36

vue组件大集合 component的相关文章

Vue最全指令大集合————VUE

# Vue指令大集合(无slot) #### 包含内容: 1. v-cloak2. v-html3. v-text4. v-bind5. v-show6. v-model7. v-for8. v-if v-else-if v-else9. v-pre 代码如下:(可以自己复制去看一下) html 1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <meta charset="UTF-8"> 6 <tit

JS组件系列——又一款MVVM组件:Vue(二:构建自己的Vue组件)

阅读目录 一.为什么组件很重要 二.Vue里面的组件基础知识 1.组件的概念 2.组件原理 3.组件使用 三.封装自己的Component 1.使用Component封装bootstrapTable 2.封装select 3.查看其他Vue框架源码 四.总结 正文 前言:转眼距离上篇 JS组件系列--又一款MVVM组件:Vue(一:30分钟搞定前端增删改查) 已有好几个月了,今天打算将它捡起来,发现好久不用,Vue相关技术点都生疏不少.经过这几个月的时间,Vue的发展也是异常迅猛,不过这好像和博

javascript功能插件大集合,写前端的亲们记得收藏

导读:GitHub 上有一个 Awesome – XXX 系列的资源整理.awesome-javascript 是 sorrycc 发起维护的 JS 资源列表,内容包括:包管理器.加载器.测试框架.运行器.QA.MVC框架和库.模板引擎.数据可视化.时间轴.编辑器等等. 伯乐在线已在 GitHub 上发起「JavaScript 资源大全中文版」的整理.欢迎扩散.欢迎加入. https://github.com/jobbole/awesome-javascript-cn js包下载地址:http:

Vue组件化开发

一. 通过axios实现数据请求 1. json简介 json是 JavaScript Object Notation 的首字母缩写,单词的意思是javascript对象表示法,这里说的json指的是类似于javascript对象的一种数据格式. json的作用:在不同的系统平台,或不同编程语言之间传递数据. 1.1 json数据的语法 json数据对象类似于JavaScript中的对象,但是它的键对应的值里面是没有函数方法的,值可以是普通变量,不支持undefined,值还可以是数组或者jso

vue组件

require.js 加载 vue组件 r.js 合并压缩 require.js 参考阮一峰 Javascript模块化编程(三):require.js的用法r.js 合并压缩 参考司徒正美 r.js合并实践 准备: vue.js 原本是学习vue组件 require.js 然后想到用require 加载 r.js 文件太多 合并 文件目录 忽略部分文件及文件夹 一.先说vue 组件 先引入vue 再引入vue组件 Vue.extend({}) 定义组件 template data method

vue组件最佳实践

看了老外的一篇关于组件开发的建议(强烈建议阅读英文原版),感觉不错翻译一下加深理解. 这篇文章制定一个统一的规则来开发你的vue程序,以至于达到一下目的.1.让开发者和开发团队更容易发现一些事情.2.让你更好的利用你的IDE.3.让你更加容易的使用打包工具4.让你的代码更容易碎片化以达到复用的目的. 基于模块开发 用一些功能单一的小模块来组织你的应用 Why? 对于你自己和你团队的人来说较小的模块更容易看懂 维护 复用和调试. How? 每个组件应该保持单一 独立 可复用 可测试把你很大的组件拆

windows常用服务和命令大集合(攻略版)

windows运行命令大集合,学完以后,你就会对windows系列系统了如指掌,处理故障问题就会事半功倍,领导也会慢慢的器重你,提升你在公司的价值地位. 下面一一介绍: winver 检查Windows版本 wmimgmt.msc 打开Windows管理体系结构(wmi) wupdmgr Windows更新程序 w脚本 Windows脚本宿主设置 write 写字板 winmsd 系统信息 wiaacmgr 扫描仪和照相机向导 winchat xp自带局域网聊天 mem.exe 显示内存使用情况

【Vue】详解Vue组件系统

Vue渲染的两大基础方式 new 一个Vue的实例 这个我们一般会使用在挂载根节点这一初始化操作上: new Vue({ el: '#app' }) 注册组件并使用 通过Vue.component()去注册一个组件,你就可以全局地使用它了,具体体现在每个被new的 Vue 实例/注册组件, 的template选项属性或者对应的DOM模板中,去直接使用 注册组件 全局注册 例如,放在通过new创建的Vue实例当中: Vue.component('my-component', { template:

vue组件懒加载(Load On Demand)

在Web应用程序中,系统的瓶颈常在于系统的响应速度.如果系统响应速度过慢,用户就会出现埋怨情绪,系统的价值也因此会大打折扣.因此,提高系统响应速度,是非常重要的. 懒加载(Load On Demand)是一种独特而又强大的数据获取方法,它能够在用户滚动页面的时候自动获取更多的数据,而新得到的数据不会影响原有数据的显示,同时最大程度上减少服务器端的资源耗用. 用vue.js写单页面应用时,会出现打包后的JavaScript包非常大,影响页面加载,我们可以利用路由的懒加载去优化这个问题,当我们用到某