Vue.js基础学习
一.vue入门
1.HelloWorld
1 | 声明式编程 |
2.声明式编程
1 | <div id="app"> |
3.小案例
1 | <div id="app"> |
4.options
1 | el: |
5.vue生命周期

1 | 事物从诞生到消亡的过程 |
6.es6语法
1.let和const
1 | let 块级作用域 |
2.对象
1 | const obj { |
3.函数
1 | const obj { |
4.js遍历
1 | let i in arr |
5.js高阶函数
1 | 1.filter必须返回一个boolean值,true自动加到数组,false则过滤掉 |
二.语法
1.插值操作
(1).双括号
(2).v-once
1 | {{firstName+" "+lastName}} |
1 | <h2 v-once>{{message}}</h2> |
(3).v-html
1 | <div> v-html="url"></div> |
(4).v-text
1 | v-text="message" |
(5).v-pre
1 | <h2 v-pre>{{message}}</h2> |
(6).v-cloak
1 | 在vue解析之前,div中有一个属性v-cloak |
2.属性v-bind
1 | <img v-bind:src="url" alt="" /> |
3.计算属性
(1).基本操作
1 | computed: { |
(2).复杂操作
1 | computed: { |
(3).setter / getter
1 | computed: { |
(4).计算属性的缓存
1 | 计算属性会有缓存,运行次数会变少 |
4.v-on
(1).使用
1 | @click="方法" |
(2).修饰符
1 | 阻止冒泡->stop |
5.v-if
1 | <h2 v-if="false">{{message}}</h2> |
6.v-show
1 | <span v-show="flag"> |
7.v-for
1 | 遍历数组 |
(1).数组的响应式
1 | 响应式 |
8.过滤器
1 | 可以对一些东西进行一些操作 |
9.练习
1 |
|
10.v-model
1 | 数据的双向绑定 |
1.radio
1 |
|
2.checkbox
1 | <input type="checkbox" name="" value="1" v-model="message" /> |
3.select
1 | 单选 |
4.值绑定
1 | <label :for="item" v-for="item in originHobbies" |
5.修饰符
1 | lazy 失去焦点或者回车才记载数据 |
三.组件化
1.创建组件构造器
1 | const cpnC = Vue.extend({ |
2.注册组件
1 | 全局注册,可以在多个vue实例下使用 |
3.使用组件
1 | 必须挂载到vue实例下 |
3-1.最佳
1 | <div id="app"> |
4.父子组件
1 | const cpnC1 = Vue.extend({ |
5.组件模板
1 | 1. <script type="text/x-template" id="cpn"> |
6.组件的data为什么必须是函数
1 | const cpnC1 = Vue.extend({ |
7.父子组件之间的通信
1.父向子通信
1 | props |
2.子向父通信
1 | 自定义事件 |
3.父访问子
(1).$children
1 | const app = new Vue({ |
(2).$refs
1 | <cpn ref="aaa"></cpn> |
4.子访问父
(1).parent
1 | const app = new Vue({ |
8.插槽slot
1.基本使用
1 | 为了让我们的组件有更好的扩展性 |
2.具名插槽的使用
1 | 使用 |
3.编译作用域
1 | 在哪里使用,作用域就在哪里 |
4.作用域插槽的使用
1 | 父组件替换插槽的标签,但是内容由子组件来提供 |
四.模块化开发
1.匿名函数解决
1 |
|
2.commonJs
1 | 导出 |
3.ES
1 | 需要设置html代码引入js文件的类型设置为module |
五.webpack
1 | 模块化打包工具 |
1.config
1 | npm install webpack@3.6.0 -g 全局安装 |
2.loader
1 | const path = require("path"); |
六.Vue-cli
1 | npm install -g @vue/li |
七.vue-router
1.路由操作
1 | location.hash = '' |
2.vue-router
1 | <router-link to="/home">Home</router-link> | |
3.动态路由
1 | { |
4.路由的软加载
1 | const Home = () => import("../components/Home.vue"); |
5.嵌套路由
1 | <template> |
6.传递数据
1 | <router-link :to="{path:'/profile',query:{name:id,imgUrl:imgUrl}}" >档案</router-link> |
7.全局导航守卫
1 | 前置钩子hook |
1.keep-alive
1 | 保留状态 |
八.promise
1.base
1 | new Promise((resolve, reject) => { |
2.all方法
1 | Promise.all([new Promise((resolve, reject) => {}), new Promise((resolve, reject) => {})]); |
九.vuex
1.初始化
1 | import Vue from "vue"; |
2.具体使用
不是响应式想要使用可以使用Vue.set或者Vue.delete方法
(1).state(变量)
(2).mutations(方法)
1 | 使用 方法(state){ |
(3).getters(计算属性)
(4).modules
1 | modules:{ |
(5).action
1 | 异步操作 |
十.axios
1.基本使用
1 | axios({ |
2.并发
1 | axios |
3.配置
1 | 全局 |
4.network文件夹
1 | 最好建立一个network文件专门进行网络请求 |
5.拦截器
1 | export function request(config) { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 CodeLorin's Blog!
评论





本站已经全站启用pjax

