以下问题出现的场景都是基于vue2.x,如果是vue 1.x,可能就没有参考意义了。
绑定事件如何主动传当前元素
1 | @click="onClick($event, others)" |
vue.config如何配置不同打包后的文件输出路径
在使用vue的cli 3.x后,webpack的打包配置都通过项目根目录的vue.config.js
进行配置,而默认这个文件是不存在的,需要自己创建和书写配置。
假如现在有个需求,我想在不同的打包命令下,打包后的文件输出在不同的本地文件夹:
在package.json
文件配置了两个命令
(1)当我执行npm run build
时,进行文件打包,打包后的文件输出在当前项目目录的dist
文件夹(vue cli默认的配置就是如此)
(2)当我执行npm run publish
时,进行文件打包,打包后的文件输出在某个指定的本地目录的某个文件夹
方法:
通过修改打包命令进行传参数,让
vue.config.js
文件获取到参数来区分不同的打包操作,从而修改打包后的输出文件路径
package.json
文件配置:
1 | "scripts": { |
vue.config.js
文件配置:
1 | module.exports = { |
以上的打包配置,在npm run publish
时,打包后的文件就会存在你本地的'/Users/xxx/Documents/host/test/projectname
里。
Element-ui的table事件如何传自定义参数
例子代码片段(row-click
为表格当某一行被点击时会触发该事件):
1 | <el-table |
而该事件默认有三个参数:row, column, event
,参数的意义可以看element-ui官方文档
问题:如果我的table是个数组循环渲染,需要传个当前table下标index
第一反应的方案是:
1 | <template v-for="(item, index) in data"> |
这种写法虽然能够获取到index
的值,但是,row
column
event
这三个变量的值就变成undefined
因为如果在绑定的时,给
onRowClick
传入的三个参数,是当前上下文的三个新变量,而当前上下文并没有声明有这三个变量,所以是undefined
,而传入的undefined
就覆盖了row-click
事件的三个默认参数。
我们可以改造一下写法:
1 | <template v-for="(item, index) in data"> |
这样,在onRowClick
就可以正常获取到四个参数的值。