vue2.0的学习

 vue-router

除了使用 <router-link> 创建 a 标签来定义导航链接,我们还可以借助 router 的实例方法,通过编写代码来实现。

1)router.push(location)

这个方法会向 history 栈添加一个新的记录,所以,当用户点击浏览器后退按钮时,则回到之前的 URL。

当你点击 <router-link> 时,这个方法会在内部调用,所以说,点击 <router-link :to="..."> 等同于调用router.push(...)

2)router.replace(location)

跟 router.push 很像,唯一的不同就是,它不会向 history 添加新记录,而是跟它的方法名一样 —— 替换掉当前的 history 记录。

点击<router-link :to="..." replace>等同于调用router.replace(...)

 

vue组件

注册

1)全局注册

复制代码
//app.js
Vue.component('ttModal', Vue.asyncComponent('Common','ttModal'));
//ttModal.html <div class="tt-modal-wrapper"> <div class="modal-mask" v-bind:class="{'in': isModalIn}" v-on:click="modalClose"></div> <div class="modal-content" v-bind:class="{'in': isModalIn}"> modal-content. <slot name="content"></slot> </div> </div> //topicLeft.html <tt-modal v-if="isShowCreateTopic" v-on:close="isShowCreateTopic = false"> <div slot="content">topicLeft.</div> </tt-modal>
复制代码

渲染后:

复制代码
//ttModal.html
methods: {modalClose: function(e) { if(this.$el.contains(e.target)) {
       //vm.$el:Vue 实例使用的根 DOM 元素 this.$emit('close');
       //vm.$emit:触发当前实例上的事件即close事件 } } }
复制代码

<slot> 元素可以用一个特殊的属性 name 来配置如何分发内容。多个 slot 可以有不同的名字。具名 slot 将匹配内容片段中有对应 slot 特性的元素。

2)局部注册

  通过使用组件实例选项注册,可以使组件仅在另一个实例/组件的作用域中可用。

使用组件时,大多数可以传入到 Vue 构造器中的选项可以在注册组件时使用,有一个例外: data 必须是函数。

复制代码
//project.js
components: {"projectDetail": Vue.asyncComponent('Project', 'projectDetail', 'Project/projectDetail/projectDetail')
},//project.html <project-detail></project-detail>
复制代码

   Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没有必要引入jQuery。vue-resource是Vue.js的一款插件,它可以通过XMLHttpRequest或JSONP发起请求并处理响应。也就是说,$.ajax能做的事情,vue-resource插件一样也能做到,而且vue-resource的API更为简洁。另外,vue-resource还提供了非常有用的inteceptor功能,使用inteceptor可以在请求前和请求后附加一些行为,比如使用inteceptor在ajax请求时显示loading界面。

复制代码
<div class="itemAddRow clearfix"> <i>项目名</i> <textarea v-model="projectName" placeholder="请输入项目名" style="height:32px;"></textarea> </div> <div class="itemAddRow clearfix"> <i>项目描述</i> <textarea v-model="projectDescription" placeholder="请输入项目描述" style="height:150px;"></textarea> </div> <div class="itemAddRow clearfix"> <i>项目状态</i> <div> <input type="radio" name="projectStatus" value="1" v-model="projectStatus">开发中&nbsp;&nbsp; <input type="radio" name="projectStatus" value="2" v-model="projectStatus">已发布 &nbsp;&nbsp; <input type="radio" name="projectStatus" value="3" v-model="projectStatus">稳定&nbsp;&nbsp; <input type="radio" name="projectStatus" value="4" v-model="projectStatus">停止维护&nbsp;&nbsp; </div> </div> 
复制代码
复制代码
data: function() {return {projectName:'', projectDescription:'', projectStatus:1 } }, methods: { addProject:function(){ var projectName=this.projectName.trim(), projectDescription=this.projectDescription.trim(); if(projectName==''||projectDescription==''){ alert('请输入完整的项目信息'); return; } var postData={ name:projectName, description:projectDescription, status:this.projectStatus, userId:this.$conf.userInfo.userId }; var self=this; Vue.http.post(this.$conf.API_createProject,postData).then(function(response) { var data=response.data; if(data.ReturnCode == '0000') { 
         //vm.$parent:父实例,如果当前实例有的话 self.$parent.$parent.isShowProjectAdd = false; } }); } }
复制代码

 

组件实例的作用域是孤立的。这意味着不能并且不应该在子组件的模板内直接引用父组件的数据。

1)可以使用 props 把数据传给子组件。

prop 是父组件用来传递数据的一个自定义属性。子组件需要显式地用props选项声明 “prop”。

复制代码
<!--taskAdd.html-->
<tt-popup top="10px" left="20px"> <div slot="content">users</div> </tt-popup> <!--ttPopup.html--> <div class="tt-popup" v-bind:style="{top:top,left:left}"> <slot name="content"></slot> </div>
复制代码

 

//app.js
Vue.component('ttPopup', Vue.asyncComponent('Common','ttPopup'));//注册组件 //ttPopup.html props: ['top','left'],

渲染后:

2)在子组件中使用this.$parent获取父组件实例

 

插件通常会为Vue添加全局功能。

1)Vue.js 的插件应当有一个公开方法 install 。这个方法的第一个参数是 Vue 构造器 

2)通过全局方法 Vue.use(plugin) 使用插件

安装 Vue.js 插件。如果插件是一个对象,必须提供 install 方法。如果插件是一个函数,它会被作为 install 方法。install 方法将被作为 Vue 的参数调用。

复制代码
//1,添加实例方法
function plugin(Vue) {if(plugin.installed) { return; } Vue.prototype.$conf = conf; } if(typeof window !== 'undefined' && window.Vue) { window.Vue.use(plugin); } //2,添加全局方法或属性 function plugin(Vue) { if(plugin.installed) { return; } Vue.asyncComponent = asyncComponent; } if(typeof window !== 'undefined' && window.Vue) { window.Vue.use(plugin); }
复制代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/541479.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Java EE 7精粹》—— 第3章 JSF 3.1 Facelets

本节书摘来异步社区《Java EE 7精粹》一书中的第2章&#xff0c;第2.1节&#xff0c;作者&#xff1a;【美】Arun Gupta&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 第3章 JSF JSF是基于Java的Web应用程序开发的服务器端用户界面&#xff08;UI&#xf…

mysql5批处理_转关于mysql5.5 的批处理讨论(转载)

MySql的JDBC驱动不支持批量操作(已结)MySql连接的url中要加rewriteBatchedStatements参数&#xff0c;例如String connectionUrl"jdbc:mysql://192.168.1.100:3306/test?rewriteBatchedStatementstrue";还要保证mysql JDBC驱的版本。MySql的JDBC驱动的批量插入操作性…

《C#多线程编程实战(原书第2版)》——3.2 在线程池中调用委托

本节书摘来自华章出版社《C#多线程编程实战&#xff08;原书第2版&#xff09;》一书中的第3章&#xff0c;第3.2节&#xff0c;作者&#xff08;美&#xff09;易格恩阿格佛温&#xff08;Eugene Agafonov&#xff09;&#xff0c;黄博文 黄辉兰 译&#xff0c;更多章节内容可…

《Android 应用测试指南》——第2章,第2.4节包浏览器

本节书摘来自异步社区《Android 应用测试指南》一书中的第2章&#xff0c;第2.4节包浏览器&#xff0c;作者 【阿根廷】Diego Torres Milano&#xff08;迭戈 D.&#xff09;&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 2.4 包浏览器创建完前面提到的两个…

《OpenStack云计算实战手册(第2版)》——1.7 添加用户

本节书摘来自异步社区《OpenStack云计算实战手册&#xff08;第2版&#xff09;》一书中的第1章&#xff0c;第1.7节,作者&#xff1a; 【英】Kevin Jackson , 【美】Cody Bunch 更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.7 添加用户 在OpenStack身份认证服务中…

java外部类_Java里什么叫内部类什么叫外部类

展开全部对普通类(没有内部类的类)来说&#xff0c;62616964757a686964616fe78988e69d8331333337396234内部类和外部类都与他无关&#xff1b;对有内部类的类来说&#xff0c;它们就是其内部类的外部类&#xff0c;外部类是个相对的说法&#xff0c;其实就是有内部类的类。所以…

《精通Matlab数字图像处理与识别》一6.2 傅立叶变换基础知识

本节书摘来自异步社区《精通Matlab数字图像处理与识别》一书中的第6章&#xff0c;第6.2节&#xff0c;作者 张铮 , 倪红霞 , 苑春苗 , 杨立红&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 6.2 傅立叶变换基础知识 精通Matlab数字图像处理与识别要理解傅立…

《iOS 6核心开发手册(第4版)》——2.11节秘诀:构建星星滑块

本节书摘来自异步社区《iOS 6核心开发手册&#xff08;第4版&#xff09;》一书中的第2章&#xff0c;第2.11节秘诀&#xff1a;构建星星滑块&#xff0c;作者 【美】Erica Sadun&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 2.11 秘诀&#xff1a;构建星星…

软考下午题具体解释---数据流图设计

在历年的软考下午题其中&#xff0c;有五道大题。各自是数据流图的设计&#xff0c;数据库设计&#xff0c;uml图&#xff0c;算法和设计模式&#xff0c;从今天这篇博文開始&#xff0c;小编就跟大家来一起学习软考下午题的相关内容。包含理论上的知识以及典型例题的解说&…

mysql属于数据库三级模式_数据库系统的三级模式指的是什么

数据库系统的三级模式指的是什么发布时间&#xff1a;2020-10-26 10:11:21来源&#xff1a;亿速云阅读&#xff1a;52作者&#xff1a;小新小编给大家分享一下数据库系统的三级模式指的是什么&#xff0c;希望大家阅读完这篇文章后大所收获&#xff0c;下面让我们一起去探讨吧&…

《自顶向下网络设计(第3版)》——导读

目录 第1部分 辨明客户的需求和目标 第1章 分析商业目标和制约 1.1 采用自顶向下的网络设计方法 1.2 分析商业目标 1.3 分析商业制约 1.4 商业目标检查表 1.5 小结 1.6 复习题 1.7 设计环境 第2章 分析技术目标与折衷措施 2.1 可扩展性 2.2 可用性 2.3 网络性能 2.4 安全性 2…

最小硬币问题_进行更改的最小硬币数量

最小硬币问题Description: 描述&#xff1a; This is classic dynamic programming problem to find minimum number of coins to make a change. This problem has been featured in interview rounds of Amazon, Morgan Stanley, Paytm, Samsung etc. 这是经典的动态编程问题…

补丁(patch)的制作与应用

为什么80%的码农都做不了架构师&#xff1f;>>> 转自http://linux-wiki.cn/wiki/zh-hans/%E8%A1%A5%E4%B8%81(patch)%E7%9A%84%E5%88%B6%E4%BD%9C%E4%B8%8E%E5%BA%94%E7%94%A8 如果hack了开源代码&#xff0c;为了方便分享&#xff08;如提交Bug&#xff09;或自己…

hbase 伪分布安装 java_HBase基础和伪分布式安装配置

一、HBase(NoSQL)的数据模型1.1 表(table)&#xff0c;是存储管理数据的。1.2 行键(row key)&#xff0c;类似于MySQL中的主键&#xff0c;行键是HBase表天然自带的&#xff0c;创建表时不需要指定1.3 列族(column family)&#xff0c;列的集合。一张表中有多个行健&#xff0c…

java script创建对象_JavaScript七种非常经典的创建对象方式

JavaScript创建对象的方式有很多&#xff0c;通过Object构造函数或对象字面量的方式也可以创建单个对象&#xff0c;显然这两种方式会产生大量的重复代码&#xff0c;并不适合量产。接下来介绍七种非常经典的创建对象的方式&#xff0c;他们也各有优缺点。一、工厂模式可以无数…

axis2开发webservice之编写Axis2模块(Module)

axis2中的模块化开发。能够让开发者自由的加入自己所需的模块。提高开发效率&#xff0c;减少开发的难度。 Axis2能够通过模块&#xff08;Module&#xff09;进行扩展。Axis2模块至少须要有两个类&#xff0c;这两个类分别实现了Module和Handler接口。开发和使用一个Axis2模块…

java 看书浏览器官_JAVA读取文件流,设置浏览器下载或直接预览操作

最近项目需要在浏览器中通过url预览图片。但发现浏览器始终默认下载&#xff0c;而不是预览。研究了一下&#xff0c;发现了问题&#xff1a;// 设置response的header&#xff0c;注意这句&#xff0c;如果开启&#xff0c;默认浏览器会进行下载操作&#xff0c;如果注释掉&…

scrapy抓取淘宝女郎

scrapy抓取淘宝女郎 准备工作 首先在淘宝女郎的首页这里查看&#xff0c;当然想要爬取更多的话&#xff0c;当然这里要查看翻页的url,不过这操蛋的地方就是这里的翻页是使用javascript加载的&#xff0c;这个就有点尴尬了&#xff0c;找了好久没有找到&#xff0c;这里如果有朋…

win10 iot core java_Windows 10 IoT Core 正式版初体验

今天收到Windows 10 IoT Core Team邮件&#xff0c;Windows 10 IoT Core正式发布。以下记录了今天在Raspberry Pi 2上的体验过程&#xff1a;准备工作一台运行着正版Windows 10且版本不小于10240的个人PCVisual Studio 2015 版本不小于14.0.23107.0 D14Rel Install Visual Stud…

VUE2 第五天学习--过渡效果

阅读目录 1.理解VUE---过渡效果回到顶部1.理解VUE---过渡效果 1. 过渡的-css-类名会有4个(css) 类名在 enter/leave 在过渡中切换。1. v-enter: 进入过渡的开始状态。在元素被插入时生效&#xff0c;在下一个帧移除。2. v-enter-active: 进入过渡的结束状态。在元素被插入时生效…