vue的filters是纯函数,没有this
- 纯函数的定义是:
如果函数的调用参数相同,则永远返回相同的结果。它不依赖于程序执行期间函数外部任何状态或数据的变化,必须只依赖于其输入参数。
该函数执行过程不会产生任何可观察的副作用。副作用来自,但不限于:
进行一个 HTTP 请求,
Mutating data,
输出数据到屏幕或者控制台,
DOM 查询/操作,
Math.random(),
获取的当前时间。
//url有可能是完整路径-url: "https://cms-bucket.ws.126.net/2019/09/17/0d8d568a0bf94cb29201e6b4892ca653.png?imageView&thumbnail=234y146&quality=45&interlace=1&enlarge=1&type=webp"
//缺少基准了路径-url: "/uploads/image/IMG1602235525065.jpeg"
//因此缺少基准路径的需要补上基准路径才能正常显示
<img class="pic" :src="postdata.cover[0].url | changesrc" alt="" />
//过滤器
filters: {
changesrc: function (oldsrc) {
const reg = /^http/;
if (reg.test(oldsrc)) {
return oldsrc;
} else {
//不能写成 return this.$axios.defaults.baseURL + oldsrc;
return "http://157.122.54.189:9083" + oldsrc;
}
},
},