小编wra*_*him的帖子

在客户端设置Access-Control-Allow-Origin后,即使出现CORS错误

我有一个使用webpack-simple选项生成的Vue应用程序.我正在尝试发出GET请求,https://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=en但我收到错误:

XMLHttpRequest无法加载 https://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=en.对预检请求的响应未通过访问控制检查:请求的资源上不存在"Access-Control-Allow-Origin"标头.http://127.0.0.1:8080因此,不允许访问" 来源" .

我正在使用vue-resource并添加了:

Vue.http.headers.common['Access-Control-Allow-Origin'] = '*'
Run Code Online (Sandbox Code Playgroud)

那没有效果.

我还在以下devServer选项中添加了这个webpack.config.js:

devServer: {
  historyApiFallback: true,
  noInfo: true,
  headers: {
    "Access-Control-Allow-Origin": "*"
  }
}
Run Code Online (Sandbox Code Playgroud)

这也不能解决问题; 错误消息保持不变.

如何解决这个问题?

cors webpack vue.js webpack-dev-server vue-resource

10
推荐指数
1
解决办法
2万
查看次数

在Vue.js中如何使用多个路由器视图,其中一个在另一个组件内?

我有一个Vue.js单页面应用程序,其中有一个<router-view/>用于呈现不同页面的主导航栏.

像这样的东西:

<main-header/> <!-- navigation links -->
<transition name="slide-fade" mode="out-in">
  <router-view/> <!-- different pages -->
</transition>
Run Code Online (Sandbox Code Playgroud)

在其中一个页面中,我有一个侧栏,它有更多的导航链接(<router-link/>就像主导航栏一样.

像这样的东西:

<sidebar/> <!-- navigation links -->
<div class="content">
  <transition name="slide-fade" mode="out-in">
    <router-view/> <!-- content beside the sidebar -->
  </transition>
</div>
Run Code Online (Sandbox Code Playgroud)

当我单击侧边栏导航链接时,我希望侧边栏旁边的内容以及要更改的URL更改.但是,我丢失了侧边栏,只是获取要在内容部分中呈现的组件.

我如何达到预期的效果?如何<router-view/>在其他组件中使用多个s,如上例所示?

javascript vue.js vue-router vuejs2

7
推荐指数
3
解决办法
1万
查看次数

在Vuejs中,如何渲染默认路由器视图之外的组件

我有一个 vue 应用程序,其中使用 vue-router 导航页面。

我的app.vue很简单:

<template>
  <div id="app">
    <main-header/>
    <router-view/>
  </div>
</template>

<script>...</script>
<style>...</style>
Run Code Online (Sandbox Code Playgroud)

页面使用 vue-router 渲染:

export default new Router({
  routes: [
    {
      path: '/',
      name: 'Home',
      component: Home
    }, {
      path: '/page1',
      name: 'Page1',
      component: Page1
    }, {
      path: '/page2',
      name: 'Page2',
      component: Page2
    }
  ]
})
Run Code Online (Sandbox Code Playgroud)

现在使用应用程序的网址是

localhost:8080/#/      -> Home
localhost:8080/#/page1 -> Page1
localhost:8080/#/page2 -> Page2
Run Code Online (Sandbox Code Playgroud)

问题:我想创建另一个Login.vue未由 vue-router 使用的页面,并按如下方式访问:localhost:8080/或者localhost:8080/login,在成功身份验证后,它会返回到默认 url 路由,如上所述。例如,当localhost:8080/login没有App.vue渲染时,这可能吗?

我该怎么做呢?

vue.js vue-router vue-component vuejs2

6
推荐指数
1
解决办法
2924
查看次数

渲染 JSX 的函数与在另一个组件内声明组件的函数有什么区别?

这是一种反模式吗?

export function Todo() {
    ...

    const renderItem = (item) => (
        item.done
            ? <strike>{item.text}</strike>
            : <span>{item.text}</span>
    );

    return (
        <ul>
            {items.map((item) => <li>renderItems(item)</li>)}
        </ul>
    );
}
Run Code Online (Sandbox Code Playgroud)

与在 Todo 中创建 Item 组件相比,渲染这样的项目有什么区别,如下所示:

export function Todo() {
    ...

    const Item = (props) => (
        props.item.done
            ? <strike>{item.text}</strike>
            : <span>{item.text}</span>
    );

    return (
        <ul>
            {items.map((item) => <li><Item item={item} /></li>)}
        </ul>
    );
}
Run Code Online (Sandbox Code Playgroud)

编辑:

在本地创建被调用一次的组件/渲染函数怎么样?

export function SomeForm(props) {
    const renderButton = (isComplete) => (
        isComplete
            ? <button>Submit</button>
            : <button disabled>Please complete</button>
    ); …
Run Code Online (Sandbox Code Playgroud)

jsx reactjs react-hooks react-functional-component

6
推荐指数
1
解决办法
2958
查看次数

如何在v-for呈现的对象中发生更改时更新DOM?

v-for用来渲染基于对象数组的列表.

<ul>
  <li v-for="category, i in categories"
  :class="{active: category.active}"
  @click="changeCategory(i)">
    <a>{{ category.service_type_name }}</a>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

单击列表项changeCategory(index)运行时:

changeCategory(index) {
    this.categories.forEach((c, i) => {
        c.active = (i != index)? false : true
    })
}
Run Code Online (Sandbox Code Playgroud)

因此,单击的列表项active属性将设置为true,所有其他属性设置为false,并且列表项将.active添加一个类(由于:class="{active: category.active}"模板中的行.

但是,DOM未更新以显示此更改.

无论如何在发生此更改时自动更新DOM,而不this.$forceUpdate()changeCategory(index)函数中使用?

编辑:更改mapforEach,DOM仍然不更新.

编辑:我正在使用带有打字稿的vue-class-components

import Vue from 'app/vueExt'
import { Component } from 'vue-property-decorator'
import * as Template from './services.vue'

@Component({
    mixins: [Template]
}) …
Run Code Online (Sandbox Code Playgroud)

vue.js vue-component vuejs2 v-for

5
推荐指数
1
解决办法
1933
查看次数

public/manifest.json 文件在 Vue CLI 3.0 生成的 Vue 应用程序中真正起什么作用?

当您使用 Vue CLI 3.0 生成应用程序并选择 PWA 支持时。它生成一个public/manifest.json文件。但是,这些设置不会在元标记中使用,例如更改文件中的主题颜色manifest.json不会更改<meta name="theme-color" ...>标记。

要配置它,您必须遵循自述文件@vue/cli-plugin-pwa并在文件中添加选项vue.config.js

那么这个manifest.json文件有什么用呢?

vue.js manifest.json vuejs2 vue-cli

2
推荐指数
1
解决办法
1万
查看次数