vue 使用小结 2019.03
v-bind 中使用函数
:attr = 'num'
如上面的例子,通常 num 是 vue 实例中 data 的值,或者是 computed 对象中的值,我们可以在具体函数中计算,改变相应的变量,以达到更改效果。
但是,在组件中,data 和 computed 中的变量都是(组件内)全局共享,某一处改变,其他依赖这个数据的地方也会改变,这对于需要独立作用的地方相当不友好。
最近碰到一个问题,在 v-for 中 每层循环中单独计算某个属性的绑定值,首先想到的是 :class="{...}" 和 :style="{...}" 。这两个属性的绑定值是一个对象,对象的 value 可以是某个函数的返回值,这样就可以在 methods 中定义计算函数了。但是很遗憾,vue 只对 class 和 style 做了特化,其他属性均不支持。
后来,文档中翻到了 filter 这个 api,项目中真的基本没用到过,可行。下附官方 demo:
<!-- 在双花括号中 -->
{{ message | capitalize }} <!-- 在 `v-bind` 中 -->
<div v-bind:id="rawId | capitalize"></div> filters: {
capitalize: function (value) {
// code
return ...
}
}
如果一个函数被限制了参数个数,那显然不是一个可复用的函数,当然,filter 中函数也支持多参数,官方文档摘录如下:
{{ message | filterA('arg1', arg2) }} 这里,filterA 被定义为接收三个参数的过滤器函数。 message 参数不写在调用的地方;
普通字符串 'arg1' 作为第二个参数;
表达式 arg2 的值作为第三个参数。
补充一个当初没细看文档的想法:在多参数的时候,将这些参数包装成 数组/对象,手动写成一个参数...逃...
$emit 中的传参的写法
在子组件中,可以通过 this.$emit('flag', xxx)把数据传递给父组件,如果在父组件中绑定回调函数时需要传入父组件中的参数时该如何处理呢?
写法如下:
// 子组件
this.$emit('test',1,2); // 父组件 可以有两种写法
// 必须写成 arguments , $emit 中提交的参数数量随意
@test='testFather(arguments, 888, 999)'; 或者 // 使用 $event 的话,只接受提交的第一个参数
@test='testFather($event, 888, 999)'; testFather(val, fatherParams01, fatherParams02) {
...
}
vue 使用小结 2019.03的更多相关文章
- 如何优雅的使用vue+vux开发app -03
如何优雅的使用vue+vux开发app -03 还是一个错误的示范,但是离优雅差的不远了... <!DOCTYPE html> <html> <head> < ...
- [2019.03.25]Linux中的查找
TMUX天下第一 全世界所有用CLI Linux的人都应该用TMUX,我爱它! ======================== 以下是正文 ======================== Linu ...
- 2019.03.03 - Linux搭建go语言交叉环境
编译GO 1.6版本以上的需要依赖GO 1.4版本的二进制,并且需要把GOROOT_BOOTSTRAP的路径设置为1.4版本GO的根目录,这样它的bin目录就可以直接使用到1.4版本的GO 搭建go语 ...
- vue开发小结(下)
前言 继前几天总结了vue开发小结(上)后,发现还有很多的点没有能列举出来,于是还是打算新建一个下篇,再补充一些vue开发中需要注意的细节,确实还是都是细节的问题,我只是在这里强调下,希望对大家有帮助 ...
- 大白话Vue源码系列(03):生成render函数
阅读目录 优化 AST 生成 render 函数 小结 本来以为 Vue 的编译器模块比较好欺负,结果发现并没有那么简单.每一种语法指令都要考虑到,处理起来相当复杂.上篇已经生成了 AST,本篇依然对 ...
- Vue学习小结(二)
接上一批,小结(二). 三.导航内容(含左侧导航及顶部面包屑导航) 其实导航条主要根据element-ui的教程进行编写,官网:http://element-ui.cn/#/zh-CN/compone ...
- Vue学习小结(一)安装依赖与数据来源
不多说啥了,生活中都是各种阵痛与惊喜.最近在学习vue框架,刚写完一个小型的后台管理系统(https://github.com/michaelzhengzm/info-manager-systerm_ ...
- Vue使用小结
公司新项目使用Asp.Net Core+Vue组合来做,这里总结下对于Vue的认识 为什么选择Vue 主要基于以下几点选择Vue而不是jQuery.React等框架 双向绑定相比于jQuery减少了许 ...
- vue视频学习笔记03
video 3 git page:任何仓库 master分支,都可以发布(git page)-------------------------------------双向过滤器:Vue.filter( ...
随机推荐
- jQuery 嵌套 event 会触发多次的原因
Html代码如下: <div id="cover"> <input type="button" id="inside" v ...
- 坑:微信小程序wx.request和wx.uploadFile中传参数的区别
微信小程序中通过组件<form>提交表单的时候,在js中通过e.detail.value得到所提交表单的json格式数据.一般提交表单我们都是通过wx.request请求,提交表单数据,通 ...
- 《Odoo开发指南》精选分享—第1章-开始使用Odoo开发(1)
引言 在进入Odoo开发之前,我们需要建立我们的开发环境,并学习它的基本管理任务. 在本章中,我们将学习如何设置工作环境,在这里我们将构建我们的Odoo应用程序.我们将学习如何设置Debian或Ubu ...
- asp.net/wingtip/创建数据访问层
一. 什么是数据访问层 在wingtip项目中,数据访问层是对以下三者的总称:1. product类等数据相关的实体类(class)2. 数据库(database),对实体类成员的存储3. 上述二者的 ...
- 从零学习Fluter(二):win10上环境搭建以及模拟器和真机调试
今天呢,又继续看了flutter 弗拉特 的东西,绝的这个东西绝对是比ReactNative更高一层次的,在2018年12月5好,flutter的第一个stale1.0发布了,我们在GitHub上可以 ...
- 使用Connector/C++(VS2015)连接MySQL的完整例子
完整示例代码1 /* Copyright 2008, 2010, Oracle and/or its affiliates. All rights reserved. This program is ...
- windows下安装virtualenv并且配置指定环境
下面是在windows下通过virtualenv创建虚拟环境, 包括 : 1. 安装virtualenv(使用pip可直接安装) 2. 使用virtualenv创建指定版本的虚拟环境 3. 进入虚拟环 ...
- Python第五天 文件访问 for循环访问文件 while循环访问文件 字符串的startswith函数和split函数 linecache模块
Python第五天 文件访问 for循环访问文件 while循环访问文件 字符串的startswith函数和split函数 linecache模块 目录 Pycharm使用技巧( ...
- 从0开始的Python学习007函数&函数柯里化
简介 函数是可以重用的程序段.首先这段代码有一个名字,然后你可以在你的程序的任何地方使用这个名称来调用这个程序段.这个就是函数调用,在之前的学习中我们已经使用了很多的内置函数像type().range ...
- 【转载】IIC SPI UART串行总线
一.SPISPI(Serial Peripheral Interface,串行外设接口)是Motorola公司提出的一种同步串行数据传输标准,在很多器件中被广泛应用. 接口SPI接口经常被称为4线串行 ...