3、来做第一个简单的vue!

本教程以本站vue.xhcss.com 标本 而写的教程!



简单点!,

我是用的layui前端后端的那css框架制作网页,未使用Js模块!

1、index引入全局CSS文件

我们打开static文件夹,新建一个main.css文件!

然后打开index.html文件,引入css!

<link rel="stylesheet/css" type="text/css" href="/static/css/main.css">

然后main.css内

@import 'layui.css';
@import 'admin.css';

我们引入layui的2个css文件! 里面可能有图片!需要修改下路劲即可! 不然报错!


2、确定网页,构建组件

然后我们知道网页包含!

image.png

1、构建nav和menu组件

所以我们先做一个nav 和menu的组件进行使用!

首先我们/src/components文件夹中新建header.vue文件!

<template>
<div class="layui-header">
<!-- 头部区域 -->
<ul class="layui-nav layui-layout-left">
<li class="layui-nav-item layadmin-flexible" lay-unselect>
<a href="javascript:;" layadmin-event="flexible" title="侧边伸缩">
<i class="layui-icon layui-icon-shrink-right" id="LAY_app_flexible"></i>
</a>
</li>
<li class="layui-nav-item layui-hide-xs" lay-unselect>
<a href="#" target="_blank" title="前台">
<i class="layui-icon layui-icon-website"></i>
</a>
</li>
<li class="layui-nav-item" lay-unselect>
<a href="javascript:;" layadmin-event="refresh" title="刷新">
<i class="layui-icon layui-icon-refresh-3"></i>
</a>
</li>
<li class="layui-nav-item layui-hide-xs" lay-unselect>
<input
type="text"
placeholder="搜索..."
autocomplete="off"
class="layui-input layui-input-search"
layadmin-event="serach"
lay-action="template/search.html?keywords="
/>
</li>
<span class="layui-nav-bar" style="left: 38px; top: 48px; width: 0px; opacity: 0;"></span>
</ul>
<ul class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right">
<li class="layui-nav-item" lay-unselect>
<a lay-href="app/message/index.html" layadmin-event="message" lay-text="消息中心">
<i class="layui-icon layui-icon-notice"></i>

<!-- 如果有新消息,则显示小圆点 -->
<span class="layui-badge-dot"></span>
</a>
</li>
<li class="layui-nav-item layui-hide-xs" lay-unselect>
<a href="javascript:;" layadmin-event="theme">
<i class="layui-icon layui-icon-theme"></i>
</a>
</li>
<li class="layui-nav-item layui-hide-xs" lay-unselect>
<a href="javascript:;" layadmin-event="note">
<i class="layui-icon layui-icon-note"></i>
</a>
</li>
<li class="layui-nav-item layui-hide-xs" lay-unselect>
<a href="javascript:;" layadmin-event="fullscreen">
<i class="layui-icon layui-icon-screen-full"></i>
</a>
</li>
<li class="layui-nav-item" lay-unselect>
<a href="javascript:;">
<cite>贤心</cite>
<span class="layui-nav-more"></span>
</a>
<dl class="layui-nav-child">
<dd>
<a lay-href="set/user/info.html">基本资料</a>
</dd>
<dd>
<a lay-href="set/user/password.html">修改密码</a>
</dd>
<hr />
<dd layadmin-event="logout" style="text-align: center;">
<a>退出</a>
</dd>
</dl>
</li>

<li class="layui-nav-item layui-hide-xs" lay-unselect>
<a href="javascript:;" layadmin-event="about">
<i class="layui-icon layui-icon-more-vertical"></i>
</a>
</li>
<li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-unselect>
<a href="javascript:;" layadmin-event="more">
<i class="layui-icon layui-icon-more-vertical"></i>
</a>
</li>
<span class="layui-nav-bar"></span>
</ul>
</div>
</template>

<script>
export default {
name: 's-head'
}
</script>

<style>
</style>

自己写头部哈!

然后我们打开index.html! 

引入组件

import headers from './components/header'

使用组件

components: {headers }
<headers></headers>

完整代码

<template>
<div id="app">
<headers></headers>
</div>
</template>
<script>
import headers from './components/header'
export default {
name: 'app',
components: {headers}
}
</script>
<style scoped lang='less'>

</style>

然后我们就可以自行写css了!

用同样的方法引入menu

menu文件

<template>
<div
    class="layui-side layui-side-menu"
    id="menu"
  >
<div class="layui-side-scroll">
<div
        class="layui-logo"
        lay-href="home/console.html"
      >
<span>xhcss{{be}}</span>
</div>
<ul class="layui-nav layui-nav-tree">
<li class="layui-nav-item">
<router-link to="/">
<i class="layui-icon layui-icon-home"></i>
<cite>首页</cite>
</router-link>
</li>
<li
          class="layui-nav-item"
          v-for="(items,index) in nbav"
          :class="{'layui-nav-itemed' :index===isShow}"
          :key="items.typename"
          @click="showToggle(index)"
        >
<a href="javascript:;">
<i class="layui-icon layui-icon-home"></i>
<cite>{{items.typename}}</cite>
<span class="layui-nav-more"></span>
</a>
<dl class="layui-nav-child">
<dd
              data-name="console"
              v-for="menu in items.submenu"
              @click="treeNavSwitch(menu.id)"
              :key="menu.link"
              :class="{'layui-this':menu.id == linkClick}"
            >
<router-link :to="{path:'/list',query: {id: menu.id}}">{{menu.typename}}</router-link>
</dd>
</dl>
</li>

<span
          class="layui-nav-bar"
          style="top: 28px; height: 0px; opacity: 0;"
        ></span>
</ul>
</div>
</div>
</template>

<script>
export default {
name: 'smenu',
// 定义属性,并设置初始值isshow判断nav显示,linkclick判断当前状态
data () {
return {
active: 'home',
isShow: 0,
be: '1',
linkClick: '',
nbav: [
{
typename: '主页',
icon: 'home',
submenu: [
{ link: '#/', typename: '首页', click: true },
{ link: '#/link2', typename: '织梦2' },
{ link: '#/link3', typename: '织梦3' }
]
}
]
}
},

// 点击菜单使用的函数
methods: {
showToggle: function (index) {
this.isShow = index
},
treeNavSwitch: function (nav) {
this.linkClick = nav
}
},
mounted () {
this.axios
.get('/type_ajax.php', {
params: {
type: 'topmenu',
typeid: 0,
field: 'typename,id,icon'
}
})
.then(response => {
this.nbav = response.data.data
})
.catch(function (error) {
// 请求失败处理
console.log(error)
})
}
}
</script>

<style>
</style>
import headers from './components/header'
import headers from './components/menu'
components: {headers,menu}


写的好!

微信扫一扫赏大洋