2018-04-17

2018-04-17  本文已影响0人  小熊530

总结&学习(5):

1:

经常使用的方式是:在元素上绑定v-for,如:<li v-for="item in items">,然后使用 的时候就是:{{item.XXX}}, 我今天犯得错是:当数组中没有XXX时,我就不知道怎么办了

其实当数组中的元素是对象的时候,使用对象访问表达式,才是item.XXX,如果数组中的元素不是对象,那就是直接item。{{item}}就可以了。

文档中:items 是源数据数组并且 item 是数组元素迭代的别名。

items就是我们循环需要的数组,item代表数数组中的每一项,从length为0,开始。所以才叫做数组元素迭代的别名

2:

  1. 切换与被切换的组件,不是在页面中进行,而是在负责路由的index.js中进行。

切换与被切换的组件均为——<router-view>所在页面的路由的——子路由。

当路由路由通过跳转发生切换时,组件自动在<router-view>区域中切换。
注意:当一个route有子路由是,该route的path就不重要了,完全靠子路由来显示。用户只需要看到子路由的path, 而子路由的path 只是借了 该路由的一个壳子,如;

{
  path: "/HelpCenterWrap",//帮助中心
  component: HelpCenter,
  children: [
    {
      path: "/HelpCenter",//问题导航
      name: "ProblemNavigation",
      component: ProblemNavigation,
    },  
    {
      path: "/HelpDetail",//帮助详情
      name: "HelpDetail",
      component: HelpDetail,
    },
  ]
},

HelpCenterWrap有两个字路由,所以他不重要了,因为我们不会去跳转到它所在页面,而是跳转到它的子页面。所以它也不需要name,而它的path只需要取一个有语义的名字即可。

  1. 当一个组件被通过<router-view>切换或被切换时,组件内容总是显示在<router-view>区域中,同事<router-view>所在页面的其余所有内容,会一直伴随切换或被切换的组件的路由显示。这就是俗话说的“借它一个壳”

3:

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。

注释:该方法会改变原始数组。

该方法有三个参数(其中1,2为必填,3为可选):

  1. index: 整数, 规定添加/删除项目的位置。使用负数可以从数组结尾处规定位置。
  2. howmany:指要删除的项目数量。如果设置为0,则不会删除项目。
  3. item1,...,itemX : 可选,向数组添加新的项目。

返回值:Array。包含被删除项目的新数组。

splice()方法可以删除从index处开始的零或多个元素,并且用参数列申明的一个或多个值来替换哪些被删除的元素。

所以今天遇到的你写的:this.FilterConditionList.SelectedCondition.splice(idx,1)就是从index开始,删除一个的意思。

总体来说:

 /* 移除TAG */
      removeTag(idx) {
        this.FilterConditionList.SelectedCondition.splice(idx,1)
      },

接收一个由点击事件传来的 —— 被点击对象在数组中的index。“1”,就代表就删除被点击的那个元素。

3:

oncat()方法用于连接两个或多个数组。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

语法:arrayObject.concat(arrayX,arrayX,......,arrayX)

参数:arrayX,必须。改参数可以是具体的值,也可以是数组对象,可以是任意多个。

返回值:返回一个新数组。该元素是通过吧所有的arrayX参数添加到arrayObject中生成的,如果要进行concat()操作的参数是数组,那么添加的时数组中的元素,而不是数组。

看完之后,我果断把代码改了。。。。

//原代码:
        let a = _manyPlace.concat(_hotelName);
        let b = a.concat(_price);
        let c = b.concat(_support);
        let d = c.concat(_appraise);
        
//改后:
      let arr = _manyPlace.concat(_hotelName,_price,_support,_appraise);

出来一个bug: splice只能移除数组,但是现在我吧数组合并之后return,合并是在计算属性中,计算属性不是数组。明天解决

上一篇下一篇

猜你喜欢

热点阅读