vue小总结

以下是我在使用vue过程中自己对vue的一些小总结,希望对学习vue的亲们能有所帮助:

1.   http的post请求:

this.$http({url: ‘/someUrl‘, method: ‘GET‘}).then(function (response) {           // success callback       }, function (response) {           // error callback       });

eg1:this.$http.post(serverApi, {‘method‘:‘getOrgInfo‘,‘params‘:{orgid:_orgid}}, {

headers: {

token: userToken

}

}).then(function(response) {

if(response.ok&&response.data!=undefined){

this.enterpriseData= response.data[0][0];

this.enterpriseData.orgid=_orgid;

}else{

alert(‘网络请求数据失败!‘);

}

},function(err) { //ajax请求出错

alert(err.message);

});

eg2:this.$http.post(serverApi, _this.getOrgOpListData, {

headers: {

token: userToken

}

}).then(function(response) {

if (response.ok && response.data != undefined ) {

response.data[1].forEach(function(item) {

item.members = false;

item.leader = false;

});

this.getOrgOpListResult.items = response.data[1];

}

},function(err) { //ajax请求出错

alert(err.message);

});

此处有坑请注意:当你将ajax请求拿回的数据赋值给getOrgOpListResult.items 后,并且想动态再给getOrgOpListResult.items 添加属性时,当你在别的方法里需要改变动态添加的这个属性时,你是访问不到这个属性的,所以应该在ajax请求拿回的数据里动态添加属性,然后再将其赋给getOrgOpListResult.items,然后你就可以访问并修改给getOrgOpListResult.items动态添加的属性了。

2.数据双向绑定:

适用于:<input><select><textarea>

eg:JS代码:

data () {

return {

eg1:‘张三‘,

}

}

html代码:

<input  type=‘text‘  v-model=‘eg1‘>

当你在改变这个文本输入框的值时,data中的“eg1”的值相应也会改变。

3.如果想在只是单纯的显示data里数据的值。

eg:JS代码:

data () {

return {

eg1:‘张三‘,

}

}

html代码:<label >{{eg1}}</label>

4.循环遍历v-for:

eg:

<template v-for="(index city ) in dc.city">

<option value=‘{{city.codeno}}‘>{{ city.codename }}</option>

</template>

dc.city是你要循环遍历的data,index代表city数据的索引,city 是dc.city的别名,city.codeno、city.codename是循环遍历的data里的属性。

5.逻辑判断v-if:  v-if是根据所传的值决定是否加载该模块/dom。

eg:  JS代码:

data() {

return {

showFlag: true,

}

}

html代码:

<div v-if=‘showFlag‘ class=‘login-container‘ ></div>

当showFlag的值是true时,class为login-container的div才显示。

6.v-else:在v-if或v-show后紧跟的dom后可以跟v-else,逻辑类似与if和else。

7.v-on:缩写@,绑定事件监听器,普通元素中只能监听原生DOM事件,自定义组件中可以监听组件中的自定义事件.可以传参$event。

eg1: JS代码:

methods: {

backLogin: function() {

this.showRegisterFlag = false;

this.showforgotPwdFlag = false;

this.showFlag = true;

},

}

html代码:

<button type=‘submit‘ class=‘btn btn-warning‘ v-on:click=‘backLogin‘>返回</button>

当单击“返回”按钮时触发其clik事件,调用‘backLogin‘方法。

eg2:JS代码:

methods: {

addSelectedTagForMembers: function(index) {

this.getOrgOpListResult.items[index].members = true;

},    }

html代码:

<template v-for=‘item in getOrgOpListResult.items‘>

<div class="select-item" v-on:click=‘addSelectedTagForMembers($index)‘>{{item.name}}</div>

</template>

当单击某一个class为select-item的div时,调用addSelectedTagForMembers($index)方法,在此方法中改变当前你点击的getOrgOpListResult.items里members属性的值。

8.v-bind:可以绑定src/class /style/prop等,此处重点说下v-bind:class的用法

eg1: <div class="select-item" v-bind:class="{‘selected‘: item.members}" ></div>

当item.members的值为true时,该div的class="select-item selected"

eg2:

<input v-bind:class="{‘reds‘: confirmPassword!=registeredData.password}" class=‘form-control‘ type="password">

当满足confirmPassword!=registeredData.password时该密码框class=‘form-control  reds ‘

9.v-link:是一个用来让用户在 vue-router 应用的不同路径间跳转的指令。该指令接受一个 JavaScript 表达式,并会在用户点击元素时用该表达式的值去调用 router.go

eg: <a v-link="{ path: ‘/practice/taskAssignment/‘+parmasForRouter.ac_id, activeClass: ‘practice-active-class‘}">任务分配</a>

当你要在跳转过去的页面taskAssignment内拿到你跳转页面时传的参数ac_id值时,用以下方式获取传参的值:

var acid=this.$route.params.ac_id;

链接活跃时的class:带有 v-link指令的元素,如果 v-link对应的 URL 匹配当前的路径,该元素会被添加特定的 class。默认添加的 class 是 .v-link-active,而判断是否活跃使用的是包含性匹配

链接活跃时的 class 名称可以通过在创建路由器实例时指定 linkActiveClass全局选项 来自定义,也可以通过 activeClass内联选项来单独指定:

eg:  <a v-link="{ path: ‘/a‘, activeClass: ‘custom-active-class‘ }"></a>

10.引用插件:

eg :  JS代码:

import yeziTablePaing from ‘yezi-vue/widget/yeziTablePaing.vue‘

export default {

components:{

yeziTablePaing

},

props:{ },

}

当你用import引用插件后在 components 中记得写入。

时间: 2024-10-16 22:13:56

vue小总结的相关文章

Vue.js起手式+Vue小作品实战

本文是小羊根据Vue.js文档进行解读的第一篇文章,主要内容涵盖Vue.js的基础部分的知识的,文章顺序基本按照官方文档的顺序,每个知识点现附上代码,然后根据代码给予个人的一些理解,最后还放上在线编辑的代码以供练习和测试之用:在最后,我参考SegmentFault上的一篇技博,对Vue进行初入的实战,目的是将新鲜学到的知识立即派上用场:如果你还是前端的小白,相信这篇文章可能会对产生一些帮助和引起思想的碰撞,因为大家的学习历程是相似的,遇到的困惑也有一定的共通性,如果文章出现谬误之处,欢迎各位童鞋

一个基于ES6+webpack的vue小demo

上一篇文章<一个基于ES5的vue小demo>我们讲了如何用ES5,vue-router做一个小demo,接下来我们来把它变成基于ES6+webpack的demo. 一.环境搭建及代码转换 我们先搭建一下vue 的开发环境,根据我的一篇随笔<Vue开发环境搭建及热更新>,我们一步步搭建开发环境,project名为ES6-demo. 在之前我发表的一篇随笔< 理解最基本的Vue项目>中,说到了在放置组件和入口文件的src文件夹中,main.js文件就是入口文件,App.v

教你一个vue小技巧,一般人我不说的

本文由云+社区发表 1. 需求 最近的项目中,需要实现在vue框架中动态渲染带提示框的单选/多选文本框,具体的效果如下图所示,在输入框聚焦时,前端组件通过接收的kv参数渲染出选项,用户点击选项,可以将选择的选项的key拼装到输入框中,同时允许用户自由输入. 由于项目中使用的element-ui,首选考虑使用组件的input和select组件,然而实际使用中发现框架提供的组件不能很好满足此需求.例如,使用带输入建议的input组件,能够实现提示框和单选,但并不能方便地实现多选(重复选择会覆盖输入框

vue小项目---管理系统

在上一篇文章中我们已经学习了vue的基本语法,常用属性,了解了vue的基本使用,现在让我们用vue配合Bootstrap来完成一个小项目. 首先导入Bootstap文件. <link rel="stylesheet" type="text/css" href="css/bootstrap.css"/> 导入完成后,用Boostrap的各种组件,完成一个基本的页面: <div id="app"> <

vue小知识

1.keep-alive 在vue项目中路由跳转会使页面重新渲染,在router-view外面加入keep-alive可以阻止页面刷新,但是缺点是基本的生命周期钩子实效,使用actived这个钩子,比如对城市进行选择,并且在另一个界面上进行渲染,要判断当前点击的城市和原来的城市是否一样,一样的话不进行跳转,不一样进行跳转 2.路由的懒加载 如果js太大的话,我们通常将他拆开,变小,写成回调函数()=>import() 3.服务端渲染ss 后端没有dom 解决两个问题 优化 性能优化静态页面 原文

5. Vue - 小清单实例

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>小清单</title> <link rel="stylesheet" href="../bootstrap/bootstrap/css/bootstrap.min.css"> <style> /

VUE小案例--跑马灯效果

自学Vue课程中学到的一个小案例,跑马灯效果 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="

vue小案例--简易评论区

一.小案例(评论区) 1.流程 (1)分析静态页面.(vue项目创建参考https://www.cnblogs.com/l-y-h/p/11241503.html)(2)拆分静态页面,变成一个个组件.(3)对组件编码,生成动态页面. 2.静态页面 参考来源:https://www.bilibili.com/video/av49099807/?p=22&t=1223 [举例:] <!DOCTYPE html> <html> <head> <meta char

vue小荔枝,时间控件,动态按月份增减。

依赖框架有jq,bootstrap3.0,vue2.0; 自封装(搬运)时间控件,bootstrap-datetimepicker.资源下载:看这里 需求: 默认本地时间,相隔一个月 四个选项:1一个月,一个季度,半年,一年. 如果结束日期不变,那么默认递增即可,如果结束日期改变了,以变更的日期递增月份. html结构: <div id="app"> <div class="col-md-5 form-inline"> <div cla