semantic ui vue实现
使用 Semantic UI Vue 实现前端界面
Semantic UI Vue 是 Semantic UI 的 Vue.js 集成版本,提供了一套丰富的组件和样式。以下是实现步骤和关键代码示例。
安装 Semantic UI Vue
通过 npm 或 yarn 安装 Semantic UI Vue 和其依赖:
npm install semantic-ui-vue semantic-ui-css
在项目的入口文件(如 main.js)中引入样式和组件库:
import Vue from 'vue';
import SuiVue from 'semantic-ui-vue';
import 'semantic-ui-css/semantic.min.css';
Vue.use(SuiVue);
基本组件使用
Semantic UI Vue 提供了多种常用组件,例如按钮、表单、卡片等。以下是一个按钮组件的示例:

<template>
<sui-button primary>Primary Button</sui-button>
</template>
表单实现
实现一个包含输入框和下拉菜单的表单:
<template>
<sui-form>
<sui-form-field>
<label>Username</label>
<sui-input placeholder="Enter username" />
</sui-form-field>
<sui-form-field>
<label>Country</label>
<sui-dropdown
placeholder="Select country"
:options="countries"
selection
/>
</sui-form-field>
<sui-button type="submit">Submit</sui-button>
</sui-form>
</template>
<script>
export default {
data() {
return {
countries: [
{ text: 'USA', value: 'usa' },
{ text: 'Canada', value: 'canada' },
],
};
},
};
</script>
卡片布局
使用卡片组件展示内容:

<template>
<sui-card-group :items-per-row="3">
<sui-card
v-for="(item, index) in items"
:key="index"
:image="item.image"
:header="item.header"
:meta="item.meta"
/>
</sui-card-group>
</template>
<script>
export default {
data() {
return {
items: [
{
image: 'https://via.placeholder.com/300',
header: 'Card 1',
meta: 'Description',
},
{
image: 'https://via.placeholder.com/300',
header: 'Card 2',
meta: 'Description',
},
],
};
},
};
</script>
响应式布局
Semantic UI Vue 支持响应式网格系统。以下是一个网格布局示例:
<template>
<sui-grid>
<sui-grid-row>
<sui-grid-column :width="8">
<p>Left Column</p>
</sui-grid-column>
<sui-grid-column :width="8">
<p>Right Column</p>
</sui-grid-column>
</sui-grid-row>
</sui-grid>
</template>
主题定制
通过覆盖默认变量实现主题定制。在项目中创建 semantic-ui-variables.less 文件:
@primaryColor: #ff0000;
@fontSize: 16px;
在 vue.config.js 中配置 Less 加载器:
module.exports = {
css: {
loaderOptions: {
less: {
lessOptions: {
modifyVars: {
'primary-color': '#ff0000',
},
javascriptEnabled: true,
},
},
},
},
};
注意事项
- 确保在项目中正确引入 Semantic UI CSS 文件。
- 组件的 props 和事件参考官方文档,确保兼容性。
- 主题定制时,变量名称需与 Semantic UI 的变量名一致。

