javascript - 在 Vue 组件中将逻辑从指令转移到方法

标签 javascript vue.js vuejs2 vue-component

我有一个针对样式属性的 VueJS 组件,如下所示:

<section :style="{ backgroundImage: src && 'url(' + src + ')' }">

...

<script>
  export default {
    props: ['src']
  }
</script>

现在,这完全按照我希望的方式工作(如果用户输入图像网址,它包括样式属性,如果他/她不输入,则不包括它。

但是,我的理解是(一般来说)将我的逻辑分离到一个方法中比将其包含在 :style 指令中“更好”。

现在,我对 VueJS 还很陌生,没有强大的 JavaScript 背景,我正在尝试找出如何做到这一点,但一直没能做到。

因此,我想知道是否有人可以向我展示如何编写一种方法(或其他推荐的最佳实践)来实现相同的结果。

谢谢。

最佳答案

在这种情况下,您实际上并不需要方法,您可以简单地使用计算属性。

computed:{
  sectionStyle(){
    return {
      backgroundImage: this.src && `url(${this.src})`
    }
  }
}

并在模板中使用它,如下所示:

<section :style="sectionStyle">

如果您有确定样式的参数,则可以使用方法,就像在循环中一样。

关于javascript - 在 Vue 组件中将逻辑从指令转移到方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46046135/

相关文章:

javascript - 如何定位名称等于变量值的数组?

html - 使用 vuejs 更新日期输入字段

javascript - Vuejs ajax GET 请求未在 Laravel 5.1 Blade 模板中返回数据

html - Vuejs 2 : How to include (and run) a script tag javascript file in the DOM dynamically?

vue.js - 未调用 Vue prop 验证

javascript - 将指定链接中随机选择的照片整合到网页中

javascript - 如何将JS控制台注入(inject)到任何页面? jsconsole.com

javascript - 将数据传递到 vuejs 模板

javascript - react 路由器引导链接容器

javascript - 在组件中引用最新 Vue 定界符的正确方法