首页 > 其他分享 >vite+vue3整合less教程

vite+vue3整合less教程

时间:2024-07-07 13:57:12浏览次数:8  
标签:vue const less value vue3 import data vite

1、安装依赖

pnpm install -D less less-loader

2、定义全局css变量文件 src/assets/css/global.less

:root {
  --public_background_font_Color: red;
  --publicHouver_background_Color: #fff;
  --header_background_Color: #fff;
  --menu_background: #fff;
}

3、引入less src/main.js

import {createApp} from 'vue'

import './assets/css/global.less';
import './assets/css/style.css'

import 'ant-design-vue/dist/reset.css';

import Antd from 'ant-design-vue';
import App from './App.vue';

const app = createApp(App)
app.use(Antd)
app.mount('#app')

在这里插入图片描述

4、配置vite vite.config.js

import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
export default defineConfig({
    plugins: [vue()],
    // less config
    css: {
        preprocessorOptions: {
            less: {
                javascriptEnabled: true,
            },
        },
    },
})

5、使用 src/App.vue

<script setup>
import {computed, onMounted, ref} from "vue";
import axios from "axios";

// table data
const isTableDataLoading = ref(false)
const columns = [
  {
    name: '姓名',
    dataIndex: 'name',
    key: 'name',
  },
  {
    name: '性别',
    dataIndex: 'gender',
    key: 'gender',
  },
  {
    title: '年龄',
    dataIndex: 'age',
    key: 'age',
  },
  {
    title: '电话',
    dataIndex: 'phone',
    key: 'phone',
  },
  {
    title: '邮箱',
    key: 'email',
    dataIndex: 'email',
    ellipsis: true,
  },
  {
    title: '薪资',
    key: 'salary',
    dataIndex: 'salary',
  },
  {
    title: '操作',
    key: 'action',
  },
];

const data = ref([]);


// pagination
const current = ref(1)
const pageSize = ref(8)
const total = ref(0)
const pagination = computed(() => ({
  total: total.value,
  current: current.value,
  pageSize: pageSize.value,
}));


// load data
const loadTableData = () => {
  isTableDataLoading.value = true
  const params = {
    page: current.value,
    size: pageSize.value,
  }
  axios({
    method: "get",
    url: "http://127.0.0.1:8889/zdppy_amuserdetail",
    params: params
  }).then((response) => {
    console.log("response.data", response.data);
    const responseData = response.data.data
    console.log("responseData=", responseData)
    data.value = responseData.results;
    total.value = responseData.count;
  }).finally(() => {
    isTableDataLoading.value = false
  })
}

// handle pagination change
const handleTableChange = (pag, filters, sorter) => {
  console.log(pag, filters, sorter)
  current.value = pag.current
  pageSize.value = pag.pageSize
  loadTableData()
};

onMounted(() => {
  loadTableData()
})
</script>

<template>
  <div id="test-less">xxx</div>
  <a-table
      :columns="columns"
      :data-source="data"
      :row-key="record => record.id"
      :pagination="pagination"
      :loading="isTableDataLoading"
      @change="handleTableChange"
      bordered
  >
    <template #headerCell="{ column }">
      <template v-if="column.key === 'name'">
        <span>
          {{ column.name }}
        </span>
      </template>
      <template v-else-if="column.key === 'gender'">
        <span>
          {{ column.name }}
        </span>
      </template>
    </template>

    <template #bodyCell="{ column, record }">
      <template v-if="column.key === 'action'">
        <a-space wrap>
          <a-button size="small" type="primary" block>编辑</a-button>
          <a-button size="small" block>详情</a-button>
          <a-button size="small" danger block>删除</a-button>
        </a-space>
      </template>
    </template>
  </a-table>
</template>

<style scoped lang="less">
#test-less {
  width: 100px;
  height: 100px;
  background: var(--public_background_font_Color); //自己定义的变量
}
</style>

在这里插入图片描述

标签:vue,const,less,value,vue3,import,data,vite
From: https://blog.csdn.net/qq_37703224/article/details/140227955

相关文章

  • Vite按需导入element-plus组件和icon
    Vue3-Vite项目中使用element-plus,按需导入element-plus组件和el-icon,以及自动导入Vue相关函数。如果你对打包后的文件大小不是很在乎,那么使用完整导入会更方便。配置也更加简单,可以直接参考element-plus的官网。安装依赖npmielement-plus@element-plus/icons-vuenpmiunpl......
  • 第1章 认识 Vite
    明白了,这里是第1章内容的详细展开版本:第1章认识Vite1.什么是ViteVite是一个由尤雨溪(Vue.js的创始人)开发的前端构建工具,旨在提供极快的开发体验。Vite的名字来源于法语,意为“快速”,这正是它的核心理念。1传统构建工具的挑战传统的构建工具(如Webpack、Parcel......
  • Vue3 对跳转 同一路由传入不同参数的页面分别进行缓存
    1:使用场景   从列表页跳转至不同的详情页面,对这些详情页面分别进行缓存2:核心代码2.1:配置路由文件在路由文件里对需要进行缓存的路由对象添加meta属性 //需要缓存的详情页面路由 {  name:detail,  path:'/myRouter/detail',//路径  compo......
  • Pinia 实用教程【Vue3 状态管理】状态持久化 pinia-plugin-persistedstate,异步Action,s
    什么是状态管理?全局状态Store(如Pinia)是一个保存状态和业务逻辑的实体,与组件树没有绑定,有点像一个永远存在的组件,每个组件都可以读取和写入它。三大核心概念state属性——相当于组件中的datagetter计算属性——相当于组件中的computedaction操作属性的......
  • vue3【提效】使用 VueUse 高效开发(工具库 @vueuse/core + 新增的组件库 @vueuse/compo
    Vueuse是一个功能强大的Vue.js生态系统工具库,提供了可重用的组件和函数,帮助开发者更轻松地构建复杂的应用程序。官网:https://vueuse.org/core/useWindowScroll/安装VueUsenpmi@vueuse/core@vueuse/components(可选)安装自动导入,添加到imports中//需......
  • LESS 中的变量有什么作用?如何声明和使用变量?
    LESS中的变量可以用来存储和重用值,可以节省代码和提高可维护性。它们可以存储任何类型的值,如颜色、尺寸、字符串等。在LESS中,变量的声明使用@符号,后面跟着变量的名称和值。例如:@primary-color:#FF0000;@font-size:16px;@border-radius:5px;在使用变量时,可以通......
  • LESS 的嵌套写法有什么优势?
    LESS的嵌套写法可以提高代码的可读性和维护性。通过将相关的样式规则嵌套在父选择器中,可以更清晰地表达样式之间的层级关系,避免重复的代码,并且使样式结构更加整洁。例如,假设有以下HTML结构:<divclass="container"><h1>Title</h1><p>Content</p><ahref="#">Link<......
  • 初学vue3, 全是黑盒子,vue3知识点汇总
    学习Vue.js应该像学习一门编程语言一样,首先要熟练掌握常用的知识,而对于不常用的内容可以简单了解一下。先对整个框架和语言有一个大致的轮廓,然后再逐步补充细节。千万不要像学习算法那样,一开始就钻牛角尖。前序:vueAPI的风格分为:选项式和组合式,vue2中一般用选项式,所......
  • Aws Serverless最佳实践
    序言我是一个超级爱无服务器技术的工程师!这次去了AWSSUMMIT2024,学到了超多新知识!特别是关于“无服务器开发的最佳实践”的内容特别有趣,想跟大家分享一下。什么是无服务器无服务器技术简直是神器,让你不用操心服务器和基础设施管理,应用程序就能轻松跑起来。它的魅力在于,无需......
  • vue3 父子组件双向绑定
    父组件ParentComponent.vue<!--ParentComponent.vue--><template><div>子组件输入的数据<p>ParentValue:{{parentValue}}</p>父输入框<inputv-model="parentValue"><CustomInputv-model="par......