Vue的组件和路由

组件

组件 (Component) Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能。

 

 组件的作用

组件是对特点功能代码(html,css,js)的封装, 通过组件的名字可以重复利用该组件中的代码.

1全局组件

全局组件的语法:
   Vue.component("自定义标签的名字",{配置对象})

全局组件的特点:
      全局组件可以在任何被挂着的标签中使用.
   全局组件的配置对象中必须包含template属性
代码演示

 1 <div id="app"> 2 <myform></myform> 3 </div> 

 1 <!-- script必需使用 type=text/template才可以使用-->
 2 <script id="mytemp2" type="text/template">
 3     <form action="" method="post">
 4         名称:<input type="text" name="username" /> <br />
 5         密码:<input type="password" name="password" />  <br />
 6         <input type="submit" value="提交" />
 7     </form>
 8 </script>
 9 
10 <script>
11 
12     //全局组件(任何挂载点都可以使用)
13     Vue.component("myform",{
14         //如果模板内容太多,写在这里会很麻烦
15         template:"#mytemp2"
16     })
17 
18     new Vue({
19         el:"#app",
20         data:{
21             message:"你好啊!"
22         }
23     })
24 
25 </script>

局部组件

 局部语法:
   var app = new Vue({
    el: "#app",
    data: {},
    components : {
        "局部组件的名字1" : {组件的配置对象}
        "局部组件的名字2" : {组件的配置对象}
    }
  });

 局部组件的特点
   局部组件只能够在所挂载的标签中使用.

 1 <div id="app"> 2 <myform></myform> 3 </div> 

 1 <template id="mytemp">
 2     <div>//模板这个是
 3         名称:<input type="text" name="username" /> <br />
 4         密码:<input type="password" name="password" />  <br />
 5         <input type="submit" value="提交" @click="say" />
 6     </div>
 7 </template>
 8 
 9 <script>
10 
11     new Vue({
12         el:"#app",
13         data:{
14            
15         },
16         components:{
17             //只有当前的挂载点使用
18             myform:{
19                 template:"#mytemp",
20                 //这个data必需是一个函数
21                 data() {
22                     return {
23                         count: 0,
24                         message:"我也是一个中国人"
25                     }
26                 },
27                 methods:{
28                     say(){
29                         alert("点我啊");
30                     }
31                 }
32             }
33         }
34     })
35 
36 </script>

路由

路由是负责将进入的浏览器请求映射到特定的 组件 代码中。  即决定了由(组件)去响应客户端请求。简单说路由就是url地址和对应的资源(组件)的映射,通过一个路径的url地址,可以唯一找到一个资源。路由不包含在vue中,是一个插件,需要单独下载。

官方地址:https://router.vuejs.org/zh/

路由的使用

 

 1 <div id="app">
 2     <p>
 3         <!--
 4             router-link:路由标签(它就是一个a标签)
 5             to="/foo":路径(到哪里云)
 6          -->
 7         <router-link to="/main">首页</router-link>
 8         <router-link to="/singer">歌手</router-link>
 9         <router-link to="/hot">热门歌曲</router-link>
10     </p>
11     <!-- 路由出口 -->
12     <!-- 路由匹配到的组件将渲染在这里 -->
13     <router-view></router-view>
14 </div>
15 
16 
17 <script>
18 
19     // 2. 定义路由
20     // 每个路由应该映射一个组件。 其中"component" 可以是
21     // 通过 Vue.extend() 创建的组件构造器,
22     // 或者,只是一个组件配置对象。
23     // 我们晚点再讨论嵌套路由。
24     var routes = [
25         {
26             path: '/main',
27             component: {
28                 template:"<h2>我是主页我怕谁</h2>"
29             }
30         },
31         {
32             path: '/singer',
33             component: {
34                 template:"<h2>我是歌手第5季</h2>"
35             }
36         }, {
37             path: '/hot',
38             component: {
39                 template:"<h2>葫芦娃</h2>"
40             }
41         }
42     ]
43 
44     //定义一个路由
45     var router = new VueRouter({
46         routes // (缩写) 相当于 routes: routes
47     })
48 
49     new Vue({
50         el:"#app",
51         router:router
52     })
53 
54 </script>

 

 

 

猜你喜欢

转载自www.cnblogs.com/xiaohuziguai/p/10645383.html