环境安装&脚手架生成
npm install -g vue-cli
vue init webpack vue_demo
cd vue_demo
npm install
npm run dev
访问: http://localhost:8080/ , 即可看到最简单效果。
项目打包
npm run build
发布1:使用静态服务器工具包
npm install -g serve
serve dist
发布2:使用动态web服务器(tomcat)
修改配置:webpack.prod.conf.js
output:{
publicPath:'/xxx'
}
重新打包
npm run build
将dist文件夹命名为项目名:xxx
将xxx拷贝到运行tomcat的webapps目录下
访问:http://localhost:8080/xxx
目录理解 & 新增Router
- router目录下index.js文件 : 就是路由确认有哪些接口可访问。
- app.vue是全局底层模版,相当于一般Footer和Header,其中
是代码嵌入的地方。 - 试图新增一个H文件和help目录看看
import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import H from '@/components/H' //新增
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'HelloWorld',
component: HelloWorld
},
{ //新增
path: '/help', //新增
name: 'H', //新增
component: H //新增
}
]
})
- 新增components/H.vue文件
<template>
<div class="hello">
<h1>{{ msg }}</h1>
</div>
</template>
<script>
export default {
name: 'H',
data () {
return {
msg: 'WWWWWWWWWWW to Your Vue.js App'
}
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
font-weight: normal;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 0 10px;
}
a {
color: #42b983;
}
</style>
访问:http://localhost:8080/#/help
基本概念
- 不要在子组件中直接修改父组件的状态数据。
- 数据在哪,更新数据的行为(函数)就应该定义在哪。
组件间通信方式
- props
- vue的自定义事件
- 通过v-on绑定
- 通过$on()绑定
- 触发事件
- 消息订阅与发布(pubSubJS库)
- PubSub.subscribe(‘msg’,function(msg,data){})函数
- PubSub.publish(‘msg’,data)函数
- slot
- 用于父组件向子组件传递·标签数据·
- vue-ajax
- axios库
vue UI组件库
- 常用:Mint UI,Element
常规需求:
- 数据状态变化?
- URL跳转?
理解VueJS的MVVM
- data Binding和view(dom)、model(plain JAvascript Objects)分开。
- v-bind:数据绑定
- v-on:事件绑定
- 条件渲染(v-if)
- 循环列表语句(v-for)
- 事件处理(@click)
- Vue实例生命周期(create -> mount -> update -> destory)
- 过渡 & 动画
- 过滤器(Vue.filter)
- 注册全局指令,注册局部指令。
- 自定义插件(plugin)