02.Vue项目简单实例(附Demo)
这篇文章的前提是vue的脚手架已经搭建完毕,下面是我搭建一个简易的demo的过程,demo中包含less
的导入,简单界面的显示,router-view
的渲染界面跳转,饿了吗的element-ui
的界面自定义,element-ui
的表单验证的基本使用(async-validator)。
下载demo 提取密码:cewz
配置过程
首先,我是导入了less
,因为个人写CSS习惯用less
,步骤如下:在终端cd
到工程目录下执行下面的指令
npm install less less-loader --save
完成后,我们可以在package.json文件中看到如下代码说明安装成功。
less成功提示
然后是element-ui
的安装,这个可以直接看官网,里面比较详细,我是直接全导入,这里这个不是重点,其中对element-ui
的自定义我也写了一些CSS代码,不会玩的可以参考下,如果你之前接触过BootStrap
的话这个上手是很快的,步骤如下:
npm i element-ui -S
在 main.js 中写入以下内容:
import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue';
Vue.use(ElementUI);
new Vue({
el: '#app',
render: h => h(App)
});
项目编写
首先是把HelloWord
文件删除,创建两个vue
文件formView
和oneNewView
,进入到route
r的index.js
配置路由,代码如下:
import Vue from 'vue'
import Router from 'vue-router'
// import HelloWorld from '@/components/HelloWorld'
import formView from '@/formView.vue'
import oneNewView from '@/oneNewView.vue'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'formView',
component: formView
},
{
path: '/oneNewView',
name: 'oneNewView',
component: oneNewView
},
]
})
我把app.vue
中的代码删了很多,然后把formVIew
作为了项目的启动页,因为原则上是不建议在app.vue
中写代码的,因为这个是一个入口函数,相当于一个main函数一样。后面讲解对formView
中的代码的编写。
formView中的源代码大家可以去看demo,这里不做展示了。
我这里提几点自己项目中的问题理解:
1.export default中name的作用:
name: 作用: 只有作为组件选项时起作用。允许组件模板递归地调用自身。注意,组件在全局用 Vue.component() 注册时,全局 ID 自动作为组件的 name。指定 name 选项的另一个好处是便于调试。有名字的组件有更友好的警告信息。另外,当在有 vue-devtools,未命名组件将显示成 <AnonymousComponent>,这很没有语义。通过提供 name 选项,可以获得更有语义信息的组件树。
2.对async-validator的一些基本知识介绍:
1.type
是需要的数据类型
2.require
表示是否为必填项,bool
类型
3.message
提示信息
4.trigger
触发验证操作的动作
5.min
,max
是对长度的限制
6.whitespace
,仅含有空格的字符串视为错误
在demo中还加入了一个手机号的正则验证。
3.讲一下界面的跳转:
如果是希望在项目启动时做判断,是否进入主页还是进入到类似登录界面,这个需要做路由守卫,这里就先不讲,我也不大懂目前。主要是讲一下为什么我们可以直接用
<router-link to='oneNewView'>去一个测试界面</router-link>
这样的一行代码进行跳转呢。因为我们在app.vue
这个入口函数中,我们有一个容器routerView
,这个容器会把通过router-link
跳转的界面放入其中进行渲染展示,从而推出一个新的界面,大家可以尝试一下,如果我们在app.vue
中直接导入一个formView模块的话,我们会发现,在formView
中再进行router-link
跳转时,会出现新的视图的再原有的UI基础上再routerView
里面再渲染了一个UI,是两个界面在一起了。这个操作我在app.vue
中也有代码,只是我给屏蔽了,大家可以解开玩玩就能体会了。路由中的这段代码:
{
path: '/',
name: 'formView',
component: formView
},
就是把formView
设置成了启动时的首页,本来默认是启动helloWord.vue
的,所以可以看做app.vu
e内部是没有UI的是空的,所以就规避了上面的问题。
Demo下载 密码:cewz