Vue的组件和路由
组件
组件 (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的组件和路由的更多相关文章
- vue(组件、路由)懒加载
const Login = resolve => require(['@/components/Login'], resolve) //就不用import了 Vue.use(Router) le ...
- 记录21.07.24 —— Vue的组件与路由
VUE组件 作用:复用性 创建组件的三种方式 第一种:使用extends搭配component方法 第二种:直接使用component方法 只有用vue声明且命名的才称之为创建组件 注意:templa ...
- Vue框架(三)——Vue项目搭建和项目目录介绍、组件、路由
Vue项目环境搭建 1) 安装node,在官网下载好,然后在本地安装 官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/ 2) 换源安装cnpm >: npm ins ...
- Vue小项目二手书商城:(一)准备工作、组件和路由
本项目基于vue2.5.2,与低版本部分不同之处会在(五)参考资料中提出 完整程序:https://github.com/M-M-Monica/bukesi 实现内容: 资源准备(mock数据) 组件 ...
- Vue Router:使用 props 将组件和路由解耦
在组件中使用 $route 会使之与其对应路由形成高度耦合,从而使组件只能在某些特定的 URL 上使用,限制了其灵活性. 可以使用 props 将组件和路由解耦. 一 路由配置(布尔模式): impo ...
- vue组件级路由钩子函数(beforeRouteEnter/beforeRouteUpdate/beforeRouteLeave)
1.vue组件级路由钩子函数(beforeRouteEnter/beforeRouteUpdate/beforeRouteLeave):http://www.menvscode.com/detail/ ...
- 【VUE】2.渲染组件&重定向路由
1.删除多余组件,使环境赶紧 1. 整理App.vue, 删除多余内容,在template 模板区域增加一个路由占位符 router-view:渲染路径匹配到的视图组件 <template> ...
- Javascript - Vue - webpack中的组件、路由和动画
引入vue.js 1.cnpm i vue -S 2.在mian.js中引入vue文件 import Vue from "vue"//在main.js中使用这种方式引用vue文件时 ...
- vue.js组件化开发实践
前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎么实现,技术选型自然 ...
随机推荐
- ES6系列_10之Symbol在对象中的作用
在ES5中 对象属性名都是字符串,这容易造成属性名的冲突,比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突,于是 ES6 引入 ...
- OpenCL 图像卷积 2
▶ 上一篇图像卷积 http://www.cnblogs.com/cuancuancuanhao/p/8535569.html.这篇使用了 OpenCV 从文件读取彩色的 jpeg 图像,进行边缘检测 ...
- .NET 同步 异步 委托
1.定义委托: using System; using System.Collections.Generic; using System.IO; using System.Linq; using Sy ...
- Rhythmk 学习 Hibernate 09 - Hibernate HQL
1.初始数据 @Test public void test01() { Session session = null; try { session = HibernateUtil.getSession ...
- GitHub中README.md文件的编辑和使用
最近对它的README.md文件颇为感兴趣.便写下这贴,帮助更多的还不会编写README文件的同学们. README文件后缀名为md.md是markdown的缩写,markdown是一种编辑博客的语言 ...
- Lrc歌词-开发标准
LRC歌词是在其程序当中实现的专门用于MP3等歌词同步显示的标签式的纯文本文件,如今已经得到了广泛的运用.现就LRC歌词文件的格式规定详细说明,已供程序开发人员参考. LRC文件是纯文本文件,可以用记 ...
- java 序列化时排除指定属性
java 序列化对象如何排除指定属性呢? java 中序列化对象有多种方式:struts2 ,jackson,json-lib (1)使用struts2 json插件 依赖的jar包:struts2- ...
- jquery去掉click事件
1:使用removeAttr( )和attr( ) $("a").attr("click",test()); $("a").removeAt ...
- 安装labelImg
上篇文章,我提到了安装这个工具时,遇到pyqt与sip版本不匹配的未解决问题,最后是通过windows版本一键实现的,工具包见下面链接. 参考:http://blog.csdn.net/jesse_m ...
- for 续7
----------siwuxie095 for 中的变量: FOR 变量参照的替换已被增强.您现在可以使用下列选项语法: ~I - 删除任何引号(" ...