Skip to content
鼓励作者:欢迎打赏犒劳

vue开发常见需求

v-for

遍历数组

vue
<ul>
  <li v-for="(item, index) in booksList" :key="item.id">
    <span>{{ item.name }}</span>
  </li>
</ul>

遍历对象

vue
<p v-for="(val,key) in obj" :key="key">--键是--{{key}}--值是--{{val}}</p>

动态class

vue
 <li
    v-for="item in list"
    :key="item.id"
    :class="{ activeProject: item.isActive }"
    @click="changeActive(item)"
>
    <span>{{ item.name }}</span>
</li>

<script>
function changeActive(item) {
    list.value.forEach(e => {
        e.isActive = e.id === item.id;
    })
}
</script>

重写css

css
<style scoped>
.main-class >>> .jsoneditor-menu {
    // /*这种是vue2的写法,是错误的*/
}

/*应该是这样的写法*/
.main-class :deep(.jsoneditor-menu) {
  background-color: #f0f0f0;
  color: #333;
}
</style>

静态资源访问

在vue3+vite的组合中,静态资源访问比如图片可能会遇到坑。

直接导入图片

如果你放在了非public公共目录下的话,可以用这种方式。

vue
<template>
  <img :src="logo" alt="Logo">
</template>

<script setup>
import logo from './assets/logo.png';
</script>

公共目录public

你可以将它们放置在 public 文件夹中。所有位于 public 文件夹中的资源都会被直接复制到输出目录,并且可以通过根路径访问

html
<img src="/img/pay-success.png" alt="Logo">

如何读取项目内的txt内容,不用ajax方式

如果你的Vue 3项目是基于Vite构建的,那么你可以更简单地做到这一点,因为Vite默认支持导入文本文件作为字符串:

直接导入文本文件 直接在你的Vue组件或JavaScript文件中导入.txt文件即可:

shell
import txtContent from './path/to/your/file.txt?raw';

export default {
  name: 'MyComponent',
  data() {
    return {
      fileContent: txtContent,
    };
  },
  mounted() {
    console.log(this.fileContent); // 输出文本文件的内容
  }
};

注意:在Vite中,你需要添加?raw查询参数来告诉Vite以原始文本的形式导入文件。

vue 项目history模式刷新404问题解决办法

vue项目history模式部署到服务器后 ,根路径访问没有问题,但是进入其他功能再刷新页面就会出现404,因为你没在nginx或者apache配置上面加上重定向跳转。

nginx配置内容:

解决办法,只需要加上这段配置:

shell
location / {
  try_files $uri $uri/ @router;
  index index.html;
}
 
location @router {
  rewrite ^.*$ /index.html last;
}

或:

shell
location / {
        root   /apps/web/www.test.com;
        index  index.html index.htm;
        # vue router history模式404
        try_files $uri $uri/ /index.html;
        # 允许 所有头部 所有$corsHost域 所有方法
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

这句配置的意思是每次匹配url路径时候找不到对应静态资源时候调制跳转到index.html文件

如有转载或 CV 的请标注本站原文地址