组件

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

组件的作用

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

1全局组件

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

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

<div id="app"> <myform></myform> </div>

 <!-- script必需使用 type=text/template才可以使用-->
<script id="mytemp2" type="text/template">
<form action="" method="post">
名称:<input type="text" name="username" /> <br />
密码:<input type="password" name="password" /> <br />
<input type="submit" value="提交" />
</form>
</script> <script> //全局组件(任何挂载点都可以使用)
Vue.component("myform",{
//如果模板内容太多,写在这里会很麻烦
template:"#mytemp2"
}) new Vue({
el:"#app",
data:{
message:"你好啊!"
}
}) </script>

局部组件

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

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

<div id="app"> <myform></myform> </div>

 <template id="mytemp">
<div>//模板这个是
名称:<input type="text" name="username" /> <br />
密码:<input type="password" name="password" /> <br />
<input type="submit" value="提交" @click="say" />
</div>
</template> <script> new Vue({
el:"#app",
data:{ },
components:{
//只有当前的挂载点使用
myform:{
template:"#mytemp",
//这个data必需是一个函数
data() {
return {
count: 0,
message:"我也是一个中国人"
}
},
methods:{
say(){
alert("点我啊");
}
}
}
}
}) </script>

路由

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

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

路由的使用

 <div id="app">
<p>
<!--
router-link:路由标签(它就是一个a标签)
to="/foo":路径(到哪里云)
-->
<router-link to="/main">首页</router-link>
<router-link to="/singer">歌手</router-link>
<router-link to="/hot">热门歌曲</router-link>
</p>
<!-- 路由出口 -->
<!-- 路由匹配到的组件将渲染在这里 -->
<router-view></router-view>
</div> <script> // 2. 定义路由
// 每个路由应该映射一个组件。 其中"component" 可以是
// 通过 Vue.extend() 创建的组件构造器,
// 或者,只是一个组件配置对象。
// 我们晚点再讨论嵌套路由。
var routes = [
{
path: '/main',
component: {
template:"<h2>我是主页我怕谁</h2>"
}
},
{
path: '/singer',
component: {
template:"<h2>我是歌手第5季</h2>"
}
}, {
path: '/hot',
component: {
template:"<h2>葫芦娃</h2>"
}
}
] //定义一个路由
var router = new VueRouter({
routes // (缩写) 相当于 routes: routes
}) new Vue({
el:"#app",
router:router
}) </script>

Vue的组件和路由的更多相关文章

  1. vue(组件、路由)懒加载

    const Login = resolve => require(['@/components/Login'], resolve) //就不用import了 Vue.use(Router) le ...

  2. 记录21.07.24 —— Vue的组件与路由

    VUE组件 作用:复用性 创建组件的三种方式 第一种:使用extends搭配component方法 第二种:直接使用component方法 只有用vue声明且命名的才称之为创建组件 注意:templa ...

  3. Vue框架(三)——Vue项目搭建和项目目录介绍、组件、路由

    Vue项目环境搭建 1) 安装node,在官网下载好,然后在本地安装 官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/ 2) 换源安装cnpm >: npm ins ...

  4. Vue小项目二手书商城:(一)准备工作、组件和路由

    本项目基于vue2.5.2,与低版本部分不同之处会在(五)参考资料中提出 完整程序:https://github.com/M-M-Monica/bukesi 实现内容: 资源准备(mock数据) 组件 ...

  5. Vue Router:使用 props 将组件和路由解耦

    在组件中使用 $route 会使之与其对应路由形成高度耦合,从而使组件只能在某些特定的 URL 上使用,限制了其灵活性. 可以使用 props 将组件和路由解耦. 一 路由配置(布尔模式): impo ...

  6. vue组件级路由钩子函数(beforeRouteEnter/beforeRouteUpdate/beforeRouteLeave)

    1.vue组件级路由钩子函数(beforeRouteEnter/beforeRouteUpdate/beforeRouteLeave):http://www.menvscode.com/detail/ ...

  7. 【VUE】2.渲染组件&重定向路由

    1.删除多余组件,使环境赶紧 1. 整理App.vue, 删除多余内容,在template 模板区域增加一个路由占位符 router-view:渲染路径匹配到的视图组件 <template> ...

  8. Javascript - Vue - webpack中的组件、路由和动画

    引入vue.js 1.cnpm i vue -S 2.在mian.js中引入vue文件 import Vue from "vue"//在main.js中使用这种方式引用vue文件时 ...

  9. vue.js组件化开发实践

    前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎么实现,技术选型自然 ...

随机推荐

  1. 好记性比如烂笔头--linux学习笔记7关于linux中的shell脚本编程

    之前看的各种面试,貌似都有shell脚本编程,没了解之前感觉很复杂,现在了解了些,没想象中那么难. 逻辑主要是这样的 编写.sh的脚本文件,文件里面的代码,就是在命令行输入的可执行命令的加强版,所谓加 ...

  2. python 2.7中安装mysql

    在python中进行安装mysql模块,但是怎么都不能导入mysql模块,出错如下所示: [root@python ~]# python Python 2.7.11 (default, Apr 5 2 ...

  3. c++经典排序算法全集(转)

    C++排序算法全集 排序算法是一种基本并且常用的算法.由于实际工作中处理的数量巨大,所以排序算法对算法本身的速度要求很高. 一.简单排序算法 由于程序比较简单,所以没有加什么注释.所有的程序都给出了完 ...

  4. 理解C# 4 dynamic(4) – 让人惊艳的Clay(转)

    作者:Justrun名字来自<阿甘正传>,是希望自己能够更更傻一点. link: http://www.cnblogs.com/JustRun1983/p/3529157.html   理 ...

  5. LevelDB 写入与删除记录

    [LevelDB 写入与删除记录] levelDb的记录更新操作,即插入一条KV记录或者删除一条KV记录.levelDb的更新操作速度是非常快的,源于其内部机制决定了这种更新操作的简单性. 图6.1是 ...

  6. NBU 还原windows ORACLE数据库(EC)

    rman target / startup nomount; run{ allocate channel ch00 type 'SBT_TAPE'; send 'nb_ora_serv=nbumast ...

  7. SQL优化的部分内容

    为什么要优化:      随着实际项目的启动,数据库经过一段时间的运行,最初的数据库设置,会与实际数据库运行性能会有一些差异,这时我们         就需要做一个优化调整.   数据库优化这个课题较 ...

  8. Inception

    http://baijiahao.baidu.com/s?id=1601882944953788623&wfr=spider&for=pc

  9. day24,python习题

    今日作业 有两个列表,分别存放来老男孩报名学习linux和python课程的学生名字 linux=['钢弹','小壁虎','小虎比','alex','wupeiqi','yuanhao'] pytho ...

  10. Linux汇编与C互相调用

    一.简介 C语言调用汇编有两种方式:1.通过内嵌汇编  2.通过编译链接. 二.基础知识 对于C和汇编语言的接口主要有两个问题需要解决 1.调用者与被调用者的参数传递 正常的,定义一个函数总是希望它完 ...