本人忘了的时候复习用的笔记,因此写的比较乱。css
使用方法:html
v-bind: 行间属性绑定 或者用冒号 :vue
v-bind:title 鼠标移上的显示webpack
v-bind:src 绑定图片路径ios
v-bind:html 绑定HTML文本和标签web
v-bind:text 绑定文本 (字符串)ajax
v-bind:class 绑定类样式(数组)vuex
v-bind:style 动态绑定样式 (对象)json
v-for: 1.x 和 2.x是不同的axios
v-for="i in json"
v-for="(key, value) in json"
1.x 能够是使用$index, $key, 2.x 被移除
- <ul id="example">
<li v-for="item in items">
{{$index}}
{{$key}}
</li>
</ul>
复制代码
<ul id="example">
<li v-for="(item,index) in items">
{{item}}
{{index}}
</li>
</ul>
复制代码
v-on:click="one();two()"
@click="one();two()" 分号隔开
v-if显示隐藏是将dom元素整个添加或删除,
v-show隐藏则是为该元素添加css--display:none,dom元素还在。
v-hide 和v-show正好相反
v-else紧跟在v-if或者v-show后边,不然将不被识别。
.prevent: 提交事件再也不重载页面; .stop: 阻止单击事件冒泡; .self: 当事件发生在该元素自己而不是子元素的时候会触发; .capture: 事件侦听,事件发生的时候会调用
c m u d beforeCreate(建立前) 在数据观测和初始化事件还未开始 created(建立后) 完成数据观测,属性和方法的运算,初始化事件,el 替换,并挂载到实例上去以后调用。实例已完成如下的配置:用上面编译好的html内容替换el属性指向的DOM对象。完成模板中的html渲染到html页面中。此过程当中进行ajax交互。 beforeUpdate(更新前) 在数据更新以前调用,发生在虚拟DOM从新渲染和打补丁以前。能够在该钩子中进一步地更改状态,不会触发附加的重渲染过程。 updated(更新后) 在因为数据更改致使的虚拟DOM从新渲染和打补丁以后调用。调用时,组件DOM已经更新,因此能够执行依赖于DOM的操做。然而在大多数状况下,应该避免在此期间更改状态,由于这可能会致使更新无限循环。该钩子在服务器端渲染期间不被调用。 beforeDestroy(销毁前) 在实例销毁以前调用。实例仍然彻底可用。 destroyed(销毁后) 在实例销毁以后调用。调用后,全部的事件监听器会被移除,全部的子实例也会被销毁。该钩子在服务器端渲染期间不被调用。
vuex用于组件之间共享数据 以store做为容器 state:用来存储共享数据, 数据池 getters:用来获取处理事后的数据,具备缓存的做用 mutations: 同步提交状态的更改 actions:异步提交状态的更改 module:当状态管理多了, 使用module来划分多个模块
props:true的使用 $route的使用
post方法要记得告知后端什么类型格式的文件 vue-resource 0.7.1版本比较好 http.post
.ajax({});
capitalize, uppercase, debounce '100', currency, pluralize 'dog' ,
limitBy v-for="i in arr | limitBy 2" 截取前两个, limitBy 截取长度, 截取起点,
filterBy v-for="i in arr | filterBy 'male' in 'sex'" 过滤i中的sex是male的,
orderBy 排序
自定义过滤器的方法 :
单向过滤器:Vue.filter('过滤器的名字', 参数){return 返回值};
双向过滤器: Vue.filter('过滤器名字', {read(inputValue){}, write(newValue, oldValue, params){}})
不能里面外面都定义 data 也就是data , 能够赋值取值
log 返回data 只能查看,不能赋值和取值 $destroy 销毁实例化对象
css中 [v-cloak]{display:none}
注意使用的时候:指令名字比能有大写字母!!! 能够实现的功能: 拖拽, 随机背景颜色,图片放大, 计数 Vue,directive('指令名', function(){
}); 双向绑定自定义指令: Vue.directive('inputColor', { bind(){ 这里写初始化 }, update(参数){ 这里写更新后的数据 } })
Vue.elementDirective('lyz', { bind(){ 初始化 }, update(param){ 更新组件 } })
hash:hash 虽然出如今 URL 中,但不会被包括在 HTTP 请求中,对后端彻底没有影响,所以改变 hash 不会从新加载页面。 history:利用了HTML5 History Interface 中新增的pushState() 和replaceState() 方法, 后端要作地址重定向的处理。 history.go(-2);//后退两次 history.go(2);//前进两次 history.back(); //后退 hsitory.forward(); //前进
var bus = new Vue(); Vue.emit('数据名', (接收到的数据)=>{ this.本身的变量名 = 接收到的数据 })
组件输出 -> 打包(给包组件命名,做为标签名使用) -> 输出打包后的模块 -> Vue.use(模块名) -> <全局组件名字 />
打包组件的js文件
import cp1 from './cp1.vue'
import cp1 from './cp1.vue'
let package = {
install(vue){
vue.component('cp1', cp1)
vue.component('cp2', cp2)
}
}
export default package;
复制代码
main.js
import package from "globalCp"
Vue.use(package)
复制代码
其余vue文件直接使用便可
<cp1></cp1>
复制代码
设置vue.config.js, 里面设置devServer的proxy, 这个是webpack的代理服务器的方式。