栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > Vue.js

vue2.5开发去哪儿网APP知识点总结

Vue.js 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

vue2.5开发去哪儿网APP知识点总结

基础知识 创建一个vue实例
var vue = new Vue({
	el: "#app",
	props:{
	},
	components:{
	},
	data:{
	},
	methods:{
	},
	watch:{
	},
	computed:{
	},
	......
})

直接引入vue.js情况下,需要创建一个vue实例,每个vue实例都要有一个挂载点el,id或者class均可,在vue实例中包含挂载点、data、组件、方法、侦听器、计算属性等。

声明式渲染
{{msg}}
var vue = new Vue({
	el:"#app",
	data:{
		msg:"hello world"
	}
})

插值表达式的使用

指令

v-model
主要用于表单组件input select textarea
v-text v-html
插入数据,区别是否解析html标签
v-show v-if
控制显示 隐藏,区别在于被控制的模块是否会重新被渲染
v-if v-else-if v-else
条件判断渲染
v-for
循环,通常与属性key一块使用
v-on
事件绑定,可简写为@,绑定事件在vue实例中的methods中执行,事件修饰符有.stop .prevent .capture .self .once .passive
v-bind
属性绑定,可简写为:,常见 :key :src :class :style
v-slot
插槽绑定,可简写为#,用于绑定插槽名称,区分插槽

组件传值 父组件向子组件传值

父组件传递数据,在组件上绑定属性,给属性赋值


子组件接收数据,在vue实例中用props接收数据,可使用type default required validator选项

	var APP = new Vue({
		el:"#app",
		props:{
			list:String, // 数据类型
			default:"default" // 默认值,
			required: true, // 是否必填项 Boolean
			validator:function(){
				// 验证
			}
		}
	})
子组件向父组件传值

子组件发生某个方法,可带参数,传递给父组件,使用$emit


var vue = new Vue({
	el:"#app",
	methods:{
		handleClick:function(){
			this.$emit("getData","参数")
		}
	}
})

父组件接收参数,父组件定义相对应的方法接收,在methods中执行


var vue = new Vue({
	el:"app",
	methods:{
		getHandleClick:function(e){
			// 执行方法
		}
	}
})
兄弟组件传值

方法1:先传给父组件,再通过父组件传递给兄弟组件
方法2:使用状态管理 vuex

生命周期

生命周期钩子
beforeCreate
create
beforeMount
mounted
update
activated
deactivated
beforeDestroy
destroyed
errorCaptured

搭建项目
  • 安装node.js npm
  • 安装vue-cli
  • 最好安装git,使用git base
  • 创建项目 vue init webpack project-name
项目中的组件化

使用脚手架vue-cli搭建项目,src目录为资源目录,存放资源文件、页面、路由、状态管理文件、main.js、App.vue等
这里是单页面项目,页面文件夹pages中按页面创建单页面文件夹,一个页面一个文件夹,每个文件夹中有一个父组件页面,和一个子组件页面文件夹components。
每个页面分为多个单独的组件,以组件的形式引入父组件,然后父组件使用路由router引入App.vue
单页面子组件,template script style,命名导出




	// @import 引入公共样式
	// css样式,一般使用css扩展语言,sass/scss,less,stylus
	// scoped表示样式只在这个组件内起作用
	// 如果想要改变组件外样式,使用 >>> 符号

单页面父组件,引入子组件,其实单页面父组件也可以看做是一个子组件




	

路由router

定义页面路由,标签如下,作用类似a标签


有一个专门定义路由的文件router/index.js

// 引入vue  vue-router 各单页面组件
import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/pages/home/Home'
import City from '@/pages/city/City'
import Detail from '@/pages/detail/Detail'

Vue.use(Router)
// router 设置页面路由
export default new Router({
	routes: [{
		path: '/',
		name: 'Home',
		component: Home
	},{
		path: '/city',
		name: 'City',
		component: City
	},{
		path: '/detail/:id',  // 动态路由
		name: 'Detail',
		component: Detail
	}],
	scrollBehavior(to,from,savedPosition){
		return {x:0,y:0}
	}
})
状态管理 vuex
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
// 使用vuex
export default new Vuex.Store({
    state:{
	    // 存储状态数据
    },
    mutations:{
	    // 接收方法,改变状态
    }
})

其他

keep-alive 缓存
transition 动画
slot 插槽

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号