vue.js是前端框架,主要作用是在浏览器动态生成页面,传统的网页是在后端服务器生成,再发到浏览器。
vue.js这类框架只从后端取数据,然后在浏览器时动态生成界面,所以很适合用来做移动web,因为只从后台取数据在前端渲染流量很少,而且响应比较快。
数据双向绑定,组件化,单文件组件
全局api: vue.extend 、 vue.set
实例选项: new Vue() 、 el 、 data 、 compents 都是vue实例选项
实例属性和方法: vm.$on 、 vm.$data 、 vm.$destroy() 在$都是vue的实例和方法
指令: directive
内置组件: <components></compontents>、 <keep-alive></keep-alive> 、 <router-view></router-view>
数组中不可用的方法:slice,concat;
直接修改数组list[i] = 值,不可以这样直接修改;
Vue.set(数组,索引,{值}) vue的全局方法set来更改数组的某一项的值
标签属性和条件渲染
标签属性: v-bind:href='link"等效于 :href="link" 动态绑定;
条件渲染: v-if 、 v-else 、 v-show ;
数据绑定: {{...}} 、 v-html (原始-HTML)、 v-text ;
事件绑定-内置事件绑定,自定义事件绑定
v-on:click="run" 等效于 @:click="run" 事件绑定;
自定义事件绑定: 父组件自定义事件
<my-compented @my-event='toggle'></my-compented>
子组件触发 my-event 自定义事件; this.$emit('my-event', opation);
父组件执行toggle 函数;
计算属性和数据监听
computed选项 -计算属性:根据我们调用属性来跟新,调用的属性没有变更,我们computed选项里面的方法读取的是缓存;
页面内容响应数据v-once
如果你需要页面内容响应数据的变化,就不加v-once。
如果你需要页面内容渲染后,不随数据的变化而变化,就加上这个。
对于一些固定不变的组件,在调用时我们可以加上v-once,只在第一次渲染执行,保存数据在内存中,后面再调用直接从内容中提取,提高执行效率。
应用
组件的通信
<p:is = "动态的组件名"></p>等同于 <动态的组件名></动态的组件名> 动态绑定组件
注:Vue有个单项数据流的概念:即父组件传递给子组件的参数,子组件不能直接修改;防止引用类型参数被修改后,如果父组件中其他地方也使用了此参数会受到影响。
子组件 props 接受的两种形式:
数组: ['first-name','two-name'] ,从父组件传递两个属性值;
动态展现: {{firstName}}
对象:
slot:插槽
父组件插件里面定义的内容放到子组件 slot 中:
子组件
vue高级功能--过渡和动画
自定义指令:
使用 vue-cli的优势:
成熟的vue项目架构设计;
本地测试服务器;
集成打包上线方案 webpack
npm install vue-cli -g :全局安装vue-cli
vue init webpack my-project :初始化项目
npm install 安装项目依赖
npm run dev :在localhost启动测试服务器;
npm run bulid :生成上线目录(部署)
a、安装 vue-router
b、配置路由
6、关闭eslint
dev模式下,默认会做eslint检测,若要关闭,打开 config/index.js ,设置 useEslint: false ,${}占位符,多行字符串
7、生命周期
8、支持es6
es6中很多新特性很好用class、promise、then、catch、...(数组转换符号)、函数设置参数默认值等
a、安装babel-polyfill
b、在入口main.js文件当中引入:
c、找到build文件夹下的webpack.base.conf.js
文章参考: 慕课网-欧米雪儿lyy
5.1 基本指令5.1.1 v-cloak一般与display:none进行结合使用
作用:解决初始化慢导致页面闪动的最佳实践
5.1.2 v-once
定义它的元素和组件只渲染一次
5.2 条件渲染指令
5.2.1 v-if, v-eles-if ,v-else
用法: 必须跟着屁股走
v-if后面的等号必须是布尔值
v-if的弊端 :
Vue 在渲染元素时 ,出于效率考虑,会尽可能地复用已有的元素而非重新渲染, 因此会出现乌龙
只会渲染变化的元素,也就是说,input元素被复用了