vue路由 filters方法和filter过滤用法总结

路由传参写法 ---- 声明式

<router-link :to="{path:'dealDetail/'+id}"><router-link>

<router-link :to="{name:'dealDetail',params:{id:123}}"><router-link>

//也可以使用以下方式:
<router-link v-bind="{to:'/dealDetail/'+id}"><router-link>
路由传参写法 ---- 编程式
this.router.push({ name: 'dealDetail', params: { id: 123 }})  ->/dealDetail/123

this.router.push({ path: 'dealDetail', query: { id: 123 }}) ->dealDetail?id=123

路由传参写法 ---- 路由里要配置,不然页面空白
// 在路由中定义参数
const router = new VueRouter({
  routes: [
    { path: '/user/:id',  name: 'user', component: User }
  ]
})
//单个
{ path: '/dealDetail/:id', name:'dealDetail',component: dealDetail}
//多个
{ path: '/dealDetail/:id/:formId', name:'dealDetail',component: dealDetail}
路由传参写法 ---- 页面取值
//params
<div>User {{ $route.params.id }}</div>
//或者
this.$route.params.id

//query
<div>User {{ $route.query.id }}</div>
//或者
this.$route.query.id

vuex简易存取 小用了...
// 定义store
import Vue from 'vue'
import Vuex  from 'vuex'
Vue.use(Vuex)

export default new Vuex.Store({
    state:{
             id: ''
      },
      mutations:{
         setId(state , id) {
            state.id = id            
         }
      }
})

// 在a页面设置
 this.$store.commit( 'setId' ,(123) )

// 在b页面取
this.$store.state.id 

定义和用法

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意:filter() 不会对空数组进行检测。
注意:filter()不会改变原始数组。

语法

array.filter(function(currentValue,index,arr), thisValue)

打印
let arr = ['A', 'B', 'C'];
arr.filter(function (element, index, self) {
    console.log(element); // vue模板.html:依次打印'A', 'B', 'C'
    console.log(index); // vue模板.html:依次打印0, 1, 2
    console.log(self); // vue模板.html:self就是变量arr
    return true;
});
过滤数组中符合条件的元素:基本用法
let arr = [1, 3, 5, 8,10]
let arrFilter = arr.filter(el => el> 4)
console.log(arrFilter) // vue模板.html:[5, 8,10]

过滤对象数组中符合条件的对象:基本用法
let arrObj = [{
            name: 'A', age: 130
            }, {
            name: 'B', age: 230
            }, {
            name: 'C', age: 120
            }, {
            name: 'D', age: 110
            }, {
            name: 'E', age: 280
}]
let arrObjFilter = arrObj.filter(ele => ele.age >= 130)
console.log(arrObjFilter)
 /*vue模板.html
*   (3) [{…}, {…}, {…}]
*   0: {name: "A", age: 130}
 *   1: {name: "B", age: 230}
*   2: {name: "E", age: 280}
*   length: 3
*/
vue里面的filters限制单行文字长度
    //过滤
    filters:{  
          filtersTextChange(value){
              return value.length >= 10 ? value.substr(0,10) + '...' : value;
          }
    },
    //方法
    substrText(str,long){
        if(str.length>=long){
            return str.substr(0,long) + '...';
        }
        return str;
    },
    //去掉千分号  转换千分号toLocaleString()
    rmoney(s){
        return parseFloat(s.replace(/[^\d\.-]/g, ""));
    },
数组中的空字符去除
let arr = ['1', '2', '3', '', null, undefined, '  ', '4']
let arrFilter = arr.filter((ele, index, arr) => {
      return ele && ele.trim()
})
 console.log(arrFilter) //vue模板.html:79 (4) ["1", "2", "3", "4"]
需求用法:过滤出符合条件的对象然后map()去除某些不需要的字段
let arrObj = [{
      name: 'A', age: 130
      }, {
      name: 'B', age: 230
      }, {
      name: 'C', age: 120
      }, {
      name: 'D', age: 110
      }, {
      name: 'E', age: 280
 }]
let arrObjFilter = arrObj.filter(ele => ele.age >= 130).map((ele => {
     return ele.name
 }))
 console.log(arrObjFilter)//vue模板.html:89 (3) ["A", "B", "E"]
数组去重
let arr = [1, 2, 3, 2, 3, 4]
let arrFilter = arr.filter((ele, index, arr) => {
  return arr.indexOf(ele) === index
})
console.log(arrFilter ) //vue模板.html:79 (4) [1, 2, 3, 4]
删掉偶数,只保留奇数
var arr = [1, 2, 4, 5, 6, 9, 10, 15];
var arrFilter = arr.filter(function (x) {
     return x % 2 !== 0;
});
console.log(arrFilter )  //vue模板.html: [1, 5, 9, 15]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351