vue template 复用_Vue之组件、路由
组件:
组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树。(通俗点讲,如果你在页面上需要显示4个物品窗口,那么我只需要创建1个窗口组件,然后4次调用这个组件即可,这样是不是很节省效率)。下面展示Vue组件的示例:
// 定义一个名为 button-counter 的新组件Vue.component('button-counter', { data: function () { return { count: 0 } }, template: 'You clicked me {{ count }} times.'})
组件是可复用的 Vue 实例,且带有一个名字:在这个例子中是 。我们可以在一个通过 new Vue 创建的 Vue 根实例中,把这个组件作为自定义元素来使用:
<div id="components-demo"> <button-counter>button-counter>div
new Vue({ el: '#components-demo' })
※※※※※※
为什么突然要用星号提醒呢,以前实例化的时候,data里面是什么玩意,都是一个对象,但是现在你发现组件里面的data是什么玩意,特喵的竟然是个function,而且我告诉你,你不return一个对象就会报错,why?这样写是不是开发人员脑子瓦特了,答案是否定的。举个例子,在页面上显示两个计数器,点击一下计数+1,组件里面data的数据就会+1,试想一下,如果data里面是个对象,那么每次改变都是这个对象里面的数据,你点击第一个计数器会影响到第二个计数器里面的数据,显然这样是不合理的,如果组件返回是一个新的对象的话,那么每个组件的数据就不会受到它人的影响了。
※※※※※※
当然组件也可以定义全局组件或者每个vm自己的组件,同以前的过滤器很相似的。还有个比较重要的是子组件怎么获取父组件的data和methos,Prop 是你可以在组件上注册的一些自定义 attribute。当一个值传递给一个 prop attribute 的时候,它就变成了那个组件实例的一个 property。为了给博文组件传递一个标题,我们可以用一个props
选项将其包含在该组件可接受的 prop 列表中:
Vue.component('blog-post', { props: ['title'], template: '
{{ title }}
'})
一个组件默认可以拥有任意数量的 prop,任何值都可以传递给任何 prop。在上述模板中,你会发现我们能够在组件实例中访问这个值,就像访问 data 中的值一样。一个 prop 被注册之后,你就可以像这样把数据作为一个自定义 attribute 传递进来:
<blog-post title="My journey with Vue">blog-post><blog-post title="Blogging with Vue">blog-post><blog-post title="Why Vue is so fun">blog-post>
显示的结果如下:
还有就是使用父组件的方法:用$emit
可以使用。路由: 路由,也许在我们生活中经常听见,但是百度上的解释又很晦涩,其实从程序员角度来看的话,路由分为前端路由和后端路由。前端路由: 对于单页面程序来说,主要通过URL的hash(#号)来实现不同页面之间的切换,同时,hash有个特点:HTTP请求中不会包含hash相关的内容;所以,单页面程序中的页面跳转主要用hash实现。后端路由: 对于普通网站来说,所有的链接都是URL地址,所有的URL地址都对应服务器上对应的资源。来个从零开始的路由:
const NotFound = { template: '
Page not found
' }const Home = { template: '
home page
' }const About = { template: '
about page
' }const routes = { '/': Home, '/about': About}new Vue({ el: '#app', data: { currentRoute: window.location.pathname }, computed: { ViewComponent () { return routes[this.currentRoute] || NotFound } }, render (h) { return h(this.ViewComponent) }})
看完后,您是不是学废了
vue template 复用_Vue之组件、路由相关推荐
- vue template 复用_vue-组件基础
1.基础介绍 vue的组件是以.vue结尾的,这是毋庸置疑的.vue的组件由三个部分组成<template>,<script>和<style>. <templ ...
- vue项目通讯录_vue 自定义组件实现通讯录功能
在线demo:http://tangyupeng.top/dist/index.html#/phone 首页 + 确认 取消 import Vue from 'vue'; import Vuex fr ...
- vue面向切面_vue:在路由跳转中使用拦截器
1:首先在路由对象中的某一个具体的路由对象加这样一个属性 meta: { requireAuth:true } 2:然后在main.js中添加这段代码 router.beforeEach((to, ...
- iis vue history 配置_Vue实战——vueRouter路由的添加与配置
接上文:vue实战--自定义基础路径,端口号,继续我们的实战项目讲解之旅.本文讲解vue核心插件--vue router. 在本项目中,使用了vue-cli3.10创建的,所以默认带了router,那 ...
- vue变量传值_Vue各类组件之间传值的实现方式
1.父组件向子组件传值 首先在父组件定义好数据,接着将子组件导入到父组件中.父组件只要在调用子组件的地方使用v-bind指令定义一个属性,并传值在该属性中即可,此时父组件的使命完成,请看下面关键代码: ...
- Vue多个单文件组件使用
在project目录下创建components文件夹,然后将所有子组件放入components文件夹下 [创建此目录][文件名的首字母大写] 1.多组件嵌套使用 Child1.vue <tem ...
- Vue项目中实现父子组件之间传值
1.路由配置:使用children属性实现路由嵌套,嵌套的组件关系就是父子组件关系 {path: '/father',name: 'father',component: father,children ...
- vue就地复用不是更快吗_Vue.js从零开始——组件(1)
其实本来应该把这个章节也放在入门里面的,但是想想这个部分是 Vue 的核心功能之一,所以就独立出来吧,专门进行介绍也挺好的. 这个章节主要是对 Vue 的组件(Component)有个基础的了解先,也 ...
- vue 封装组件供全局使用_vue 封装组件的基本操作
/**1.封装组件 局部 封装**/ // 1.创建组件构造器对象 const cpnC = Vue.extend({ template: ` <div> </div>` }) ...
最新文章
- 02 Scratch等级考试(二级)模拟题
- python简历数据提取_如何使用pyPDF2从PDF格式的多页简历中提取文本数据?
- 我是如何把VC6一直用到2016年的
- 体验Vysor Pro
- Ext.Net学习笔记01:在ASP.NET WebForm中使用Ext.Net
- Unity降版本的蛋疼操作
- linux下安装xz命令
- 如何让普通人了解网络隐私的重要性
- java继承求三角形圆形面积_Java - 三角形与圆形面积
- python微信机器人制作教程+源码
- html表格序号自动增加
- 组合数性质--二项式系数之和等于2^n的证明
- 固态硬盘和机械硬盘的区别是什么
- 手机按键触发事件--隐藏APP到任务后台
- 网页脚本输入这么简单
- 微信公众号服务器搭建
- linux 内核源码下载
- 商城后台管理React+Springboot
- [软件人生]关于我,我的未来,我的思考
- JVM-G1 性能调优思路与实战
热门文章
- js模拟3D场景效果
- ospf学习笔记-7种状态
- 每天看技术文章头大,搞点笑话轻松一下吧
- 荣禄[róng lù]
- VIM - 01. 标准模式 - 下简单操作
- python 哥德巴赫猜想的验证
- oracle对象之触发器
- ubuntu和windows上pip和windows上conda国内源更新module
- .NET Web实时消息后台服务器推送技术-GoEasy
- Spring3中js/css/jpg/gif等静态资源无法找到(No mapping found for HTTP request with URI)问题解决(转)...