zoukankan      html  css  js  c++  java
  • VUE总结

    、Vue总结

    1

    """
    1、在html页面中用script标签导入vue环境
    	<script src="js/vue.js"></script>
    	
    2、new Vue({ el: "#app" })挂载页面标签,建立关联后控制页面标签
    	挂载点才有css3选择器语法
    	挂载点就是vue与页面的关联
    	挂载点只检索第一个匹配结果
    
    3、插值表达式{{ }}可以完成基础运算
    	num | num + 10 | str.split() + "拼接" 
    
    4、插值表达式中的变量有实例成员 data 来提供
    	<p id="app">{{ msg }}</P>
    	let msg = '12345'
    	new Vue({
    		el: "#app",
    		data: {
    			msg,
    		}
    	})
    
    5、v-on指令可以给标签绑定事件,事件函数由实例成员 methods 来提供
    6、插值表达式{{ 变量 | 过滤器 }}的过滤器由实例成员 filters 来提供
    	<p id="app" @click="fn">{{ msg | f1(1), 10 | f2(100, 200) }}</P>
    	let msg = '12345'
    	new Vue({
    		el: "#app",
    		data: {
    			msg,
    		},
    		methods: {
    			fn(){}
    		},
    		filters: {
    			f1(v1,v2){return v1+v2},
    			f2(v1,v2,v3,v4){return v1+v2+v3+v4}
    		}
    	})
    
    
    7、面向对象js: { 变量, } | function Fn(值){ this.属性 = 值 } | obj = { 方法(){} }
    	function Fn(v1, v2){
    		this.n1 = v1;
    		this.n2 = v2;
    	}
    	let f1 = new Fn(10, 20);
    	f1.n1
    
    8、文本指令:{{ }} | v-text=""  | v-html=""
    9、事件指令: v-on:事件名="" | @事件名="" | :事件名="fn" | :事件名="fn($event, 自定义参数)"
    	@click="fn"  |  @click="fn()"  |  @click="fn(10, 20)"  |  @click="fn($event, 10)"
    
    10、属性指令:v-bind:属性名="" | :title="变量" | :style="字段变量" | 
    			:class="变量" | :class="[变量1, 变量2]" | :class="{类1:真假, 类2:真假}"
    	:title="var1" | :style="dic1" | :class="var2" | :class="[var3, var4]" | 
    	:class="{box: true|false}"
    	
    	var2 = 'box' | var2 = 'box circle'
    			
    """
    

    2

    
    """
    1、v-model完成表单指令,简单的控制value,单选框中的使用,单独复选框的使用以及复选框中的使用
    	<input type="password" v-model="控制value的变量" />
    
    2、了解:斗篷指令解决页面闪烁
    	v-cloak =>  [v-cloak] {display:none} => 加载vue就会清除v-cloak属性
    
    3、条件指令v-if与v-show区别,v-if家族成员以及上分支会成立会屏蔽下分支的工作机制
    	v-if不渲染隐藏 | v-show以display:none渲染隐藏
    	v-if | v-else-if | v-else
    
    4、循环指令v-for如何循环渲染字符串、数组、字典,以及需要嵌套循环渲染赋值结构
    	v-for="v in str"  v-for="(v,i) in str"
    	v-for="v in arr"  v-for="(v,i) in arr"
    	v-for="v in dic"  v-for="(v,k) in dic"  v-for="(v,k,i) in dic"
    	[{},{}] {a:[]} [str1,str2]
    
    5、了解:delimiters实例成员解决插值表达式符号冲突
    	delimiters: ['{{', '}}']
    
    6、计算属性(方法属性)在computed中声明,方法内部变量会被监听,值来源于方法返回值
    	computed: {
    		methodAttr() {
    			// 内部出现的变量都会被监听,发生值更新会回调该方法
    			return '方法属性的值'
    		}
    	}
    	
    7、监听watch可以设置数据的监听方法,在监听属性更新时,完成特定逻辑
    	watch: {
    		attr() {
    			// attr属性被监听,发生值更新会回调该方法
    		}
    	}
    	
    8、重点:组件的概念,组件就是vue实例(对象)
    	<div id="app">
    		<tag />
    		<tag />
    	</div>
    	
    	let tag = {
    		template: '<p>子组件</p>'
    	}
    	
    	new Vue({
    		el: '#app',
    		components: {
    			tag,
    		}
    	})
    
    9、创建、注册、使用子组件的三部曲
    """
    

    3

    """
    1、可以用来复用的子组件,数据data需要做局部化处理,当组件被复用时,数据会相互独立
    	let tag = {
    		template: '...',
    		data() {
    			return {
    				...
    			}
    		}
    	}
    
    2、将父组件的数据传递给子组件,在渲染子组件标签时,给自定义属性设置父级数据,在子级内部用自定义属性拿父级数据
    	let tag = {
    		template: '<div>{{ msg }}</div>',
    		props: ['msg']
    	}
    	new Vue({
    		template: '<div><tag :msg="msg"></tag></div>',
    		components: {
    			tag,
    		},
    		data: {
    			msg: '123'
    		}
    	})
    
    3、将子组件的数据传递给父组件,子组件需要主动触发$emit自定义事件携带出数据,父级实现自定义事件方法,就可以接收到子级数据
    	let tag = {
    		template: '<div @click="fn">{{ msg }}</div>',
    		data() {
    			return {
    				msg: '123'
    			}
    		},
    		methods: {
    			fn() {
    				this.$emit('func', this.msg)
    			}
    		}
    	}
    	new Vue({
    		template: '<div><tag @func="f"></tag></div>',
    		components: {
    			tag,
    		},
    		methods: {
    			f(msg) {
    				console.log(msg)
    			}
    		}
    	})
    
    4、搭建vue环境需要依赖node环境,以及用npm包管理器安装vue脚手架cli(npm可以换源为cnpm)
    5、通过 vue create 项目 来创建前台项目,选择配置好项目所需的依赖
    6、用pycharm来配置vue项目启动
    7、属性vue项目目录结构,以及基本的各种原理:项目入口从main.js开始
    """
    

    4

    """
    1、箭头函数 let fn = (a, b) => a + b;
    	let 函数名 = (参数列表) => {函数体}
    
    2、函数原型:给函数设置原型 Fn.prototype.变量 = 值,那么Fn new出来的对象都可以共用 原型变量
    	function Fn() {}
    	let f1 = new Fn()
    	let f2 = new Fn()
    	Fn.prototype.fn = () => {}
    	Fn.prototype.fn2 = function () {}
    	f1.fn()
    	f2.fn()
    
    3、vue项目的请求生命周期:main.js完成环境的加载与根组件的渲染;router的index.js完成路由映射
    	项目启动:加载main.js:index.html、new Vue()、Vue、router、store、完成App.vue的挂载
    	请求:请求路径 => router路由 => 页面组件(小组件) => 替换<router-view />完成页面渲染 => <router-link>(this.$router.push())完成请求路径的切换
    	
    4、<router-view />标签作为路由映射的页面组件占位符
    5、<router-link></router-link>来完成路由的跳转
    	<router-link to="/1" :to="{name:'home', params={arg: 1}}">主页</router-link>
    	
    	{
    		path: '/:arg',
    		name: 'home',
    		component: Home
    	}
    	
    6、this.$router来完成路由的跳转:push() | go()
    	this.$router.push('/1');
    	this.$router.push({name:'home', params={arg: 1}});
    	this.$router.go(-1);
    	this.$router.go(1);
    
    7、this.$route来完成路由的传参
    	this.$route.params.arg
    	this.$route.params['arg']
    	
    8、资源的加载
    	require(资源的相对路径)
    """
    

    5

    """
    1、vue项目配置全局css文件:在main.js中用import导入或是require()加载 .css 文件
    	assets/css/global.css
    	import '@/assets/css/global.css' | require('@/assets/css/global.css')
    
    2、vue项目配置全局js文件:在main.js中用import导入 .js 文件,并将其设置给 Vue 原型
    	settings.js => export default {base_url='http://127.0.0.1:8000'}
    	import settings from '@/assets/js/settings.js'
    	Vue.prototype.$settings = settings => this.$settings.base_url
    	
    3、vuex提供的store仓库存储,可以完成组件间的传参(了解)
    	store/index.js => state: {num: 0}
    	this.$store.state.num
    
    4、vue项目配置axios可以完成前后台交互:this.$axios({}).then(response=>{}).catch(error=>{})
    	import axios from 'axios'
    	Vue.prototype.$axios = axios
    	this.$axios({
    		url: '后台接口',
    		method: 'get|post',
    		params: {},
    		data: {},
    		headers: {},
    	}).then(response=>{
    		response.data
    	}).catch(error=>{
    		error.response.data
    	})
    
    5、django利用django-cors-headers插件解决前后台分类项目跨越问题(重点)
    	注册corsheaders => 添加中间件 => 允许跨越
    
    6、前台两种提交数据的方式:url拼接参数,数据包参数
    7、前后台分离,后台登录通过的token会返回给前台,前台自己处理存储在cookie中:vue-cookies插件操作cookie
    	token = response.data.token
    	
    	this.$cookies.set(k, v, exp);
    	this.$cookies.get(k);
    	this.$cookies.remove(k);
    	
    8、全局应用配置element-ui、bootstrap
    	import ElementUi from 'element-ui'
    	Vue.use(ElementUi)
    """
    
  • 相关阅读:
    Unity3D 开发之shader教程(浅谈光照之漫反射diffuse)
    Unity3D 开发之shader教程(实现圆角矩形)
    Unity3D 开发之shader教程(实时swirl 扭曲漩涡效果)
    lerp function(线性插值计算)
    关于Lua以及UniLua的学习与笔记(随时更新)
    Android SDK Manager 更新
    Mac OS X 安装protobuf 2.6.1
    IDFactory int类型ID生成器
    Android TextView 添加部分文字高亮,点击功能
    Android MonkeyRunner 功能测试 自动执行 挂机脚本
  • 原文地址:https://www.cnblogs.com/zfb123-/p/12054998.html
Copyright © 2011-2022 走看看