Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue3 css背景图像注入_Css_Vue.js_Sass_Vuejs3_Scoped - Fatal编程技术网

Vue3 css背景图像注入

Vue3 css背景图像注入,css,vue.js,sass,vuejs3,scoped,Css,Vue.js,Sass,Vuejs3,Scoped,从我的开始构建,我现在不仅要向我的作用域css注入一个变量,还要注入一个url图像。我尝试了几种组合,但似乎都不起作用: <template> <header class="header"> </header> </template> <script> import { ref, defineComponent, computed } from 'vue' export default defineC

从我的开始构建,我现在不仅要向我的作用域css注入一个变量,还要注入一个url图像。我尝试了几种组合,但似乎都不起作用:

<template>
    <header class="header">
    </header>
</template>
<script>
import { ref, defineComponent, computed } from 'vue'
export default defineComponent({
    components: { },
    setup() {
        const cssVars = ref()
        cssVars.value = {myImage: '"hero-small.jpg"'}
        const imageBind = computed(() => '"../../assets/img/hero-small.jpg"')
        return {
            cssVars,
            imageBind,
        }
    },
})
</script>

<style lang="scss" scoped>
.header {
    background-image: url(v-bind(imageBind));
}
</style>
jsconfig.json

{
  "name": "frontend",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "axios": "^0.21.0",
    "bootstrap": "^4.5.3",
    "core-js": "^3.6.5",
    "jquery": "^3.5.1",
    "popper.js": "^1.16.1",
    "register-service-worker": "^1.7.1",
    "vue": "^3.0.0",
    "vue-router": "^4.0.0-0"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~4.5.0",
    "@vue/cli-plugin-eslint": "~4.5.0",
    "@vue/cli-plugin-pwa": "~4.5.0",
    "@vue/cli-plugin-router": "~4.5.0",
    "@vue/cli-service": "~4.5.0",
    "@vue/compiler-sfc": "^3.0.0",
    "@vue/eslint-config-airbnb": "^5.1.0",
    "babel-eslint": "^10.1.0",
    "eslint": "^7.13.0",
    "eslint-plugin-import": "^2.22",
    "eslint-plugin-vue": "^7.1.0",
    "node-sass": "^5.0.0",
    "sass-loader": "^10.1.0"
  }
}
{
    "include": ["./src/**/*"],
    "compilerOptions": {
        "baseUrl": ".",
        "paths": {
            "@/*": ["./src/*"]
        }
    }
}
.eslintrc.js

module.exports = {
    root: true,
    env: {
        node: true,
    },
    extends: [
        'plugin:vue/vue3-essential',
        '@vue/airbnb', // https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb-base/rules
    ],
    parserOptions: {
        parser: 'babel-eslint',
    },
    rules: {
        'global-require': 0,
        'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
        'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',

        // https://eslint.org/docs/rules/prefer-destructuring
        'prefer-destructuring': ['error', { object: true, array: false }],

        // https://eslint.org/docs/rules/max-len
        'max-len': [
            'warn',
            {
                code: 120,
                tabWidth: 4,
                ignoreUrls: true,
                ignoreComments: false,
                ignoreRegExpLiterals: true,
                ignoreStrings: true,
                ignoreTemplateLiterals: true,
            },
        ],

        // https://eslint.org/docs/rules/semi
        semi: ['off', 'never'],

        // https://eslint.org/docs/rules/indent
        indent: ['warn', 4],

        // https://eslint.org/docs/rules/no-underscore-dangle
        'no-underscore-dangle': ['off'],

        // https://eslint.org/docs/rules/class-methods-use-this
        'class-methods-use-this': ['off'],

        // https://eslint.vuejs.org/rules/no-multiple-template-root.html
        'no-multiple-template-root': ['off'],
    },
    overrides: [
        {
            files: ['**/__tests__/*.{j,t}s?(x)', '**/tests/unit/**/*.spec.{j,t}s?(x)'],
            env: {
                jest: true,
            },
        },
    ],
}
module.exports = {
    presets: ['@vue/cli-plugin-babel/preset'],
}
babel.config.js

module.exports = {
    root: true,
    env: {
        node: true,
    },
    extends: [
        'plugin:vue/vue3-essential',
        '@vue/airbnb', // https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb-base/rules
    ],
    parserOptions: {
        parser: 'babel-eslint',
    },
    rules: {
        'global-require': 0,
        'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
        'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',

        // https://eslint.org/docs/rules/prefer-destructuring
        'prefer-destructuring': ['error', { object: true, array: false }],

        // https://eslint.org/docs/rules/max-len
        'max-len': [
            'warn',
            {
                code: 120,
                tabWidth: 4,
                ignoreUrls: true,
                ignoreComments: false,
                ignoreRegExpLiterals: true,
                ignoreStrings: true,
                ignoreTemplateLiterals: true,
            },
        ],

        // https://eslint.org/docs/rules/semi
        semi: ['off', 'never'],

        // https://eslint.org/docs/rules/indent
        indent: ['warn', 4],

        // https://eslint.org/docs/rules/no-underscore-dangle
        'no-underscore-dangle': ['off'],

        // https://eslint.org/docs/rules/class-methods-use-this
        'class-methods-use-this': ['off'],

        // https://eslint.vuejs.org/rules/no-multiple-template-root.html
        'no-multiple-template-root': ['off'],
    },
    overrides: [
        {
            files: ['**/__tests__/*.{j,t}s?(x)', '**/tests/unit/**/*.spec.{j,t}s?(x)'],
            env: {
                jest: true,
            },
        },
    ],
}
module.exports = {
    presets: ['@vue/cli-plugin-babel/preset'],
}

尝试
要求
图像:

const imageBind = computed(() => require("../../assets/img/hero-small.jpg"))
然后:

<style lang="scss" scoped>
.header {
    background-image: url(v-bind(imageBind));
}
</style>

.标题{
背景图片:url(v-bind(imageBind));
}

也尝试过:
背景图像:v-bind(imageBindWITHURL))没有成功