参考网站:
《VUE 官网教程》
《VUE 官网API》
《菜鸟教程》
《Vue.js——60分钟快速入门》
1 Vue.js 及其实例
Vue.js是一个JavaScript MVVM{(Model-View-ViewModel)库,Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定。 ViewModel是Vue.js的核心,它是一个Vue
实例 。使用Vue的过程就是定义MVVM的各个模块的过程:
定义View
定义Model
定义ViewModel(Vue实例),用于连接Model与View
通常一个 Vue 应用 由一个通过 new Vue
创建的根 Vue 实例 ,以及可选的嵌套的、可复用的组件树 组成。
具体实现如下:
<html >
<head >
<title > testtitle >
<script type ="text/javascript" src ="vue2.1.8.js" > script >
head >
<body >
<div id ="app" >
<p v-text ="message" > p >
div >
body >
<script type ="text/javascript" >
var model = {message:'abc' }
var vm = new Vue({
el:'#app' ,
data:model
});
alert(vm.message);
script >
html >
1.1 实例数据 data
当一个 Vue 实例被创建时,它向 Vue 的响应式系统 中加入了其 data
对象中能找到的所有的属性 。当这些属性的值发生改变时,视图将会产生“响应”,即匹配更新为新的值。 值得注意的是只有当实例被创建时 data
中存在的属性是响应式的 。也就是说如果你添加一个新的属性,像:
vm.b = 'hi'
那么对 b 的改动将不会触发任何视图的更新。
1.2 计算属性 computed
和观察者 watch
虽然 Vue.js 都提供了完全的 JavaScript 表达式支持,模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。 所以,对于任何复杂逻辑,你都应当使用 计算属性 。
1.2.1 计算属性缓存 vs 方法属性 methods
当然,通过在表达式中调用方法 methods
也可以达到同样的效果,不同的是计算属性是基于它们的依赖进行缓存的 。计算属性只有在它的相关依赖发生改变时才会重新求值。 即多次访问计算属性会立即返回之前的计算结果,而不必像是用方法属性那样再次执行函数 。 这也同样意味着下面的计算属性将不再更新 ,因为 Date.now()
不是响应式依赖 :
computed: {
now: function () {
return Date .now()
}
}
1.2.2 计算属性 vs 侦听属性 watch
使用侦听属性 watch
同样可以达到使用计算属性的效果,只不过使用的代码量会加大,而且也不容易理解,如:
<div id ="demo" > {{ fullName }} div >
var vm = new Vue({
el: '#demo' ,
data: {
firstName: 'Foo' ,
lastName: 'Bar' ,
fullName: 'Foo Bar'
},
watch: {
firstName: function (val) {
this .fullName = val + ' ' + this .lastName
},
lastName: function (val) {
this .fullName = this .firstName + ' ' + val
}
}
})
var vm = new Vue({
el: '#demo' ,
data: {
firstName: 'Foo' ,
lastName: 'Bar'
},
computed: {
fullName: function () {
return this .firstName + ' ' + this .lastName
}
}
})
1.2.3 计算属性的 setter
计算属性默认只有 getter
,不过在需要时你也可以提供一个 setter
:
// ...
computed: {
fullName: {
// getter
get: function () {
return this.firstName + ' ' + this.lastName
},
// setter
set: function (newValue) {
var names = newValue.split(' ' )
this.firstName = names[0 ]
this.lastName = names[names.length - 1 ]
}
}
}
// ...
现在再运行 vm.fullName = 'John Doe'
时,setter
会被调用,vm.firstName
和 vm.lastName
也会相应地被更新。
1.2.4 侦查器 watch
同样的上述代码的实现功能使用 watch
侦查属性来做,就能更好的理解,代码量也会更少
1.3 实例的生命周期
每个 Vue 实例在被创建之前都要经过一系列的初始化过程 。例如需要设置数据监听、编译模板、挂载实例到 DOM、在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做 生命周期钩子 的函数,给予用户机会在一些特定的场景下添加他们自己的代码。 以下是来自官网的实例的生命周期介绍图,钩子函数的 this
指向 Vue 实例:
2 Vue.js的常用指令
Vue指令是以“v-”开头,作用于HTML元素,指令会为绑定目标添加一些特殊行为。 对于所有的数据绑定, Vue.js 都提供了完全的 JavaScript 表达式支持 , 实际上,指令属性的值 预期是单个 JavaScript 表达式 (v-for
是例外)情况如:
{{ number + 1 }}
{{ ok ? 'YES ' : 'NO ' }}
{{ message.split ('').reverse ().join ('') }}
<div v-bind:id ="'list-' + id" > div >
这些表达式会在所属 Vue 实例的数据作用域下作为 JavaScript 被解析 。有个限制就是,每个绑定都只能包含单个表达式,所以下面的例子都不会生效。
{{ var a = 1 }}
{{ if (ok ) { return message } }}
2.1 关于插入文本或HTML
2.1.1 v-text
, v-html
, v-once
指令
Vue 文本插值常用一对双花括号 {{ }}
表示,但在有些情况使用花括号会有冲突(如应用使用了 Jinja2 模板),此时可以使用v-text
指令,使用方法如下述代码。 v-html
指令用于插入HTML代码:
<div id ="app" v-html ="message" >
div >
<script type ="text/javascript" >
var vm = new vue({
el:'#app' ,
data:{message:'123
' }
})
script >
此时绑定的数据,会随着 message
属性的变化而变化,如果想要执行一次性地插值 ,当数据改变时,插值处的内容不会更新。可以使用 v-once
指令:
<span v-once > 这个将不会改变: {{ msg }} span >
2.1.2 v-if
指令与v-show
指令
v-if
指令会根据表达式的真假来决定删除或插入 元素,它的语法是v-if="expression"
,其中expression
返回布尔值
<div id ="app" >
<p v-if ="yes" > 123p >
<p v-if ="10>9" > 123p >
div >
<script type ="text/javascript" >
var vm = new Vue({
el:'#app' ,
data:{yes:true }
})
script >
v-show
指令与v-if
指令类似,都是根据其expression
的布尔值来执行相应的动作,区别在于v-show
指令仅仅改变的是HTML元素的display
属性 。
2.1.3 v-else
指令
v-else
指令必须要跟在v-if
或v-show
元素后面,否则自身并不能识别:
<div id ="app" >
<p v-if ="9>12" > 123p >
<p v-else > 456p >
div >
<script type ="text/javascript" >
var vm = new Vue({
el:'#app' ,
})
script >
2.1.4 v-for
指令
v-for
指令基于一个数组渲染,循环可以为数组 ,对象属性 以及整数 。语法为v-for="item in items"
数组 (使用数组,还可以 支持一个可选参数作为当前项的索引 ):
<div id ='app' >
<ul >
<li v-for ="item in items" v-text ="item.name" > li >
ul >
div >
<script type ="text/javascript" >
var vm = new Vue({
el:'#app' ,
data:{
items:[{name:1 },{name:2 },{name:3 },{name:4 },{name:5 }]
}
})
script >
对象属性 (循环对象,如果设定了循环出三个参数,那么依次为对象 属性,键名,索引 ):
<div id ='app' >
<ul >
<li v-for ="value,item,index in items" > {{value}} {{item}} {{index}}li >
ul >
div >
<script type ="text/javascript" >
var vm = new Vue({
el:'#app' ,
data:{
items:{name:'Seiei' ,sex:'man' ,age:'18' }
}
})
script >
<div id ='app' >
<ul >
<li v-for ="value in 10" > {{value}}li >
ul >
div >
<script type ="text/javascript" >
var vm = new Vue({
el:'#app'
})
script >
2.2 关于插入元素属性及事件属性
2.2.1 v-bind
指令
使用v-bind
指令还可以缩写 ,v-bind:
缩写成:
,如v-bind:class
可以缩写成:class
。
v-bind
指令用于绑定HTML元素的属性 ,语法为:v-bind:argument="expression"
:
<style type ="text/css" >
.red {color : red }
style >
<div id ='app' >
<p v-bind:class ="class1" > 123p >
div >
<script type ="text/javascript" >
var vm = new Vue({
el:'#app' ,
data:{
class1:'red'
}
})
script >
2.2.1.1 绑定 Class
v-bind
在处理 class
和 style
时, 专门增强了它。表达式的结果类型除了字符串之外,还可以是对象或数组 。
注意:对象语法 引用的classname是真类名,并不是Model中的变量
a. 对象语法
<style type ="text/css" >
.red {color : red }
style >
<div id ='app' >
<p v-bind:class ="{red:isred}" > 123p >
div >
<script type ="text/javascript" >
var vm = new Vue({
el:'#app' ,
data:{
isred:false
}
})
script >
b. 数组语法
语法v-bind:class="[classname1,classname2]"
,此时若想像传入对象那样动态切换类名,则可以使用 三元表达式 ,或直接引入一个 对象语法
<style type ="text/css" >
.red {color : red }
.blue {background-color : blue }
style >
<div id ='app' >
<p v-bind:class ="[isActive ? activeClass : '',class2,{active: isactive}]" > 123p >
div >
<script type ="text/javascript" >
var vm = new Vue({
el:'#app' ,
data:{class1:'red' ,class2:'blue' ,isactive:true }
})
script >
2.2.1.1 绑定 Style
a. 对象语法
绑定 style
时,建议只使用 对象语法 ,CSS 属性名可以用 驼峰式 (camelCase) 或 短横线分隔 (kebab-case,记得用单引号括起来) 来命名,如:
<div v-bind:style ="{ color: activeColor, fontSize: fontSize + 'px' }" > div >
data : {
activeColor : 'red' ,
fontSize: 30
}
当然直接绑定到一个 样式对象 通常更好,这会让模板更清晰
Vue.js 会自动侦测并添加 浏览器引擎前缀 的 CSS 属性
2.2.2 v-on
指令
v-on
指令用于绑定事件属性,如:
<div id ='app' >
<button v-on:click ="func" > 123button >
<button v-on:click ="func2('seiei')" > 456button >
div >
<script type ="text/javascript" >
var vm = new Vue({
el:'#app' ,
data:{message:'helloworld' },
methods:{
func:function(){alert(this.message)},
func2:function(x){alert(x)}
}
})
script >
有时也需要在内联语句处理器中访问原始的 DOM 事件 。可以用特殊变量 $event
把它传入方法
2.2.3 修饰符
修饰符 (Modifiers) 是以半角句号 .
指明的特殊后缀,用于指出一个指令应该以特殊方式 绑定 。
.stop
.prevent
.capture
.self
.once
<a v-on:click.stop ="doThis" > a >
<form v-on:submit.prevent ="onSubmit" > form >
<a v-on:click.stop.prevent ="doThat" > a >
<form v-on:submit.prevent > form >
<div v-on:click.capture ="doThis" > ...div >
<div v-on:click.self ="doThat" > ...div >
v-on
也能缩写,如v-on:click
可以缩写成@click
,且在建立Vue对象下不能使用普通语法来绑定事件
2.3 表单指令v-model
v-model
指令在表单控件 元素上创建View 与Model 的双向数据绑定 。
v-model
会忽略所有表单元素的 value
、checked
、selected
特性的初始值。因为它会选择 Vue 实例数据来作为具体的值。你应该通过 JavaScript 在组件的 data 选项中声明初始值。 因此,
元素就会以”未选中”的状态渲染。在 iOS 中,这会使用户无法选择第一个选项,解决方法
<div id ='app' >
<p > {{message}}p >
<input type ="text" name ="num" v-model ="message" placeholder ="123" >
div >
<script type ="text/javascript" >
var vm = new Vue({
el:'#app' ,
data:{message:'' }
})
script >
同样的当input
类型为checkbox
,radio
时,取得的是其设定的value
值。而当复选框如果是一个为逻辑值,如果是多个则可以绑定到同一个数组 :
<div id ='app' >
<p > {{message}}p >
<label for ="python" > label ><input id ="python" type ="checkbox" name ="num" v-model ="message" value ="python" >
<label for ="javascript" > label ><input id ="javascript" type ="checkbox" name ="num" v-model ="message" value ="javascript" >
div >
<script type ="text/javascript" >
var vm = new Vue({
el:'#app' ,
data:{message:[]}
})
script >
2.3.1 值绑定
如果想绑定 value
到 Vue 实例的一个动态属性 上,可以使用 v-bind:value
实现
2.3.2 修饰符
2.4 组件component
组件系统让我们可以用独立可复用的小组件 来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树
2.4.1 使用组件
2.4.1.1 全局注册
要注册 一个全局组件,可以使用 Vue.component(tagName, options)
,组件在注册之后,便可以作为自定义元素在一个实例的模板中使用,注意确保在初始化根实例之前注册组件 。
2.4.1.2 局部注册
你不必把每个组件都注册到全局。你可以通过某个 Vue 实例/组件的实例选项 components
注册仅在其作用域中可用的组件,如:
var Child = {
template: 'A custom component!
'
}
new Vue({
components: {
'my-component' : Child
}
})
2.4.1.3 DOM 模板解析注意事项
因为 Vue 只有在浏览器解析、规范化模板之后才能获取其内容。尤其要注意,像
、
、、
这样的元素里允许包含的元素有限制,而另一些像
这样的元素只能出现在某些特定元素的内部。 在自定义组件中使用这些受限制的元素时会导致一些问题,例如:
<table >
<my-row > ...my-row >
table >
自定义组件
会被当作无效的内容,因此会导致错误的渲染结果。变通的方案是使用特殊的 is 特性:
<table >
<tr is ="my-row" > tr >
table >
2.4.2 组件的通讯(prop
)
在 Vue 中,父子组件的关系可以总结为 prop
向下传递,事件向上传递。父组件通过 prop
给子组件下发数据,子组件通过事件 给父组件发送消息。 组件实例的作用域是孤立的。这意味着不能在子组件的模板内直接引用父组件的数据。父组件的数据需要通过 prop
才能下发到子组件中。
注意:
在 JavaScript 中对象和数组是引用类型,指向同一个内存空间,如果 prop 是一个对象或数组,尽管在子组件内部定义了一个局部变量 保存它,但改变它还是会影响父组件的状态。
HTML 特性是不区分大小写的 。所以,当使用的不是字符串模板时,驼峰式命名 的 prop
需要转换为相对应的 短横线分隔式命名
2.4.2.1 动态 prop
与绑定到任何普通的 HTML 特性相类似 ,我们可以用 v-bind
来动态地将 prop
绑定到父组件的数据。每当父组件的数据变化时,该变化也会传导给子组件。 如果你想把一个对象的所有属性作为 prop
进行传递,可以使用不带任何参数的 v-bind
(即用 v-bind
而不是 v-bind:prop-name
)。例如,已知一个 todo
对象:
todo: {
text: 'Learn Vue' ,
isComplete: false
}
然后:
<todo-item v-bind ="todo" > todo-item >
将等价于:
< todo-item v-bind :text= "todo.text" v-bind :is-complete = "todo.isComplete" >
< /todo-item >
弄清 字面量语法 和 动态语法 的区别
2.4.2.2 prop
验证
我们可以为组件的 prop 指定验证规则。如果传入的数据不符合要求,Vue 会发出警告,要指定验证规则,需要用 对象的形式 来定义 prop
,而不能用字符串数组,对象选项有:
type
:数据类型,可以为数组表示可能的多个类型
default
:表示传递数据的默认值,数组/对象的默认值应当由一个工厂函数返回
required
:布尔值,表示是否必须传入
validator
:自定义验证函数
Vue.component('example' , {
props: {
propA: Number ,
propB: [String , Number ],
propC: {
type: String ,
required: true
},
propD: {
type: Number ,
default : 100
},
propE: {
type: Object ,
default : function () {
return { message: 'hello' }
}
},
propF: {
validator: function (value) {
return value > 10
}
}
}
})
转载于:https://www.cnblogs.com/AB786883603/p/8325395.html
你可能感兴趣的:(Vue笔记)
Vue笔记九:axios原理之promise
努力努力再努力dyx
Vue vue.js javascript 前端
axios是基于promise的HTTP库,支持promise所有的APIpromise概念promise是JS中解决异步编程的语法,从语法上来讲,promise是一个构造函数,从功能来讲,用promise对象封装异步操作并获取结果。promise支持链式调用,可以解决回调地狱(多级的异步嵌套调用)。promise的基本使用创建promise对象并使用回调函数constp=newPromise((
Vue笔记 -- CSS之清除浮动
lyking
一、代码如下HTMLCSS.container{border:4pxsolidred;overflow:hidden;}.left{width:100px;height:400px;background-color:#482;float:left;}.right{width:200px;height:400px;background-color:#d96;float:right;}.footer{
2021-10-21 vue笔记-组件化开发(四) 组建通信:非父子通信-事件总线,在vue项目中使用eventbus的例子
前端OnTheRun
vue学习笔记 vue.js 组件 非父子通信 组建通信 eventBus
文章目录1.事件总线(eventBus)定义用途原理2.eventBus使用步骤3.在HTML网页中使用事件总线:模拟公众号和用户之间信息的发送和接收代码结果4.在vue项目中使用事件总线:点击增加减小按钮实现数值的增减4.1.初始化:创建一个事件总线4.2.发送事件:导入eventBus,使用`$emit`发送数据;子组件IncrementCount子组件DecreaseCountIncreme
Vue笔记总结(Xmind格式):第二天
星河路漫漫
vue.js 笔记 前端
Xmind鸟瞰图:简单文字总结:vue知识总结:创建vue脚手架:1.安装Node.js:VueCLI作为一个npm包,需要Node.js来安装和运行。2.安装VueCLI:cmd指令npminstall-g@vue/cli3.创建Vue项目:vuecreate项目名4.启动服务器:npmrunserveVue脚手架生成的主要项目文件:1.node_modules#项目依赖的第三方包2.publi
小白学习vue笔记
善良的爱心话
vue vue keep-alive axios 组件
文章目录一安装Vue二做移动端应用注意2.1在index.html中修改mate设置2.2reset.css重新设置样式,在入口文件中引入2.3引入border.css解决一像素边框的问题2.4解决click延迟300ms的问题fastclick插件2.5在style中引入其他样式,需要这样
[email protected] 对全局事件的解绑2.7解决么面滑动影响其他页面的问题3插件使用3.1stylus和stylus-l
codewhy_vue笔记01
qq_43827247
前端 html5 es6 webpack vue.js
Vue.js安装这里我们使用方式二:去官网,下载vue.js(开发版本)使用webstorm新建项目,然后新建js文件夹,把刚才下载的vue.js放到js文件夹下修改数据第一个vue代码Title{{message}}//let(变量)const(常量)//newVue,说明有一个functionVue()//声明式编程constapp=newVue({//用于挂载要管理的元素el:'#app',
Vue笔记
ゐ叶う枫ゆ
vue.js
Vue1.邂逅Vuejs1.1简单认识一下VuejsVue是一个渐进式的框架,什么是渐进式呢?渐进式意味着你可以将Vue作为应用的一部分嵌入其中,带来更丰富的交互体验或者你希望将更多的业务逻辑使用Vue实现,那么Vue核心库以及其生态系统。比如Core+Vue-router-Vuex,也可以满足你各种各样的需求。Vue有很多特点和Web开发中常见的高级功能解耦试图的数据可复用的组件前端路由技术状态
初识Vue笔记
humorous man
vue js
Vue.jsVue.js初体验Document{{message}}newVue({el:"#app",data:{message:"Vue.js初体验",}})vue的列表展示使用v-for遍历data中的列表Document{{item}}newVue({el:"#app",data:{message:"Vue.js初体验",movies:['星际穿越','大话西游','少年派','盗梦空间'
Vue笔记_03组件_vuedraggable实现拖拽(基于vue)
乖女子@@@
# vue2 vue.js javascript ecmascript
目录1.下载2.使用vuedraggable组件vue有一个vuedraggable组件可以实现拖拽效果1.下载npminstallvuedraggable2.使用vuedraggable组件[1]引入importdraggablefrom'vuedraggable'[2]注册components:{draggable},[3]使用v-model绑定的值为一个数组,当拖拽完成后数据变化之后数据中元
vue笔记(二):vue router和pinia
垃圾管理员
vue笔记 vue.js 笔记
首vuerouter实现路由功能,是一种前端渲染方式。pinia用于组件间共享数据,替代之前的vuex功能,成为新的官方推荐。安装后,导入方式如下main.js:import{createApp}from'vue'import{createPinia}from'pinia'importAppfrom'./App.vue'importrouterfrom'./router'constapp=crea
vue笔记(一):部署
垃圾管理员
vue笔记 笔记 vue.js
首文档安装1、安装nodejs(链接),18.0以上版本。2、在想要创建项目的目录下执行命令npmcreatevue@latest按提示创建项目,其中vuerouter是实现路由功能,pinia实现组件之间共享数据。如果项目需要两个功能建议选择yes。3、cdnpminstallnpmrundev启动项目访问所给链接即可。安装bootstrap如果创建项目时,部分功能没有选择,之后可手动加入,以b
学习mpvue笔记——koa入门
从小就很瘦
koa是什么?koa基于Nodejs平台的下一代web开发框架(上一代是express)。Express原班人马打造,更精简。Async+await处理异步洋葱圈型的中间件机制。用法很简单:mkdirkoa-demonpminitnpminstallkoa--save文件夹中新建一个server.jsconstKoa=require('koa')constapp=newKoa()app.use(a
vue笔记之$listeners
精神小伙2号
vue.js 笔记 前端
含义将事件从父组件传递到子组件作用可以实现孙组件的数据传递到爷组件中去示例爷组件我是爷组件{{fromSunData}}importfufrom"./views/fu.vue";exportdefault{components:{fu},data(){return{msg:"二郎神",};},methods:{fromSun(payload){console.log("孙传祖",payload);
vue笔记之$attr
精神小伙2号
vue.js 笔记 前端
含义$attr是一个对象,它包含了父组件传递给子组件但子组件没有显式声明的props作用父亲传数据到孙子示例父组件importChildfrom'../components/child.vue'exportdefault{name:'father',components:{Child},data(){return{name:'Lily',age:22,infoObj:{from:'上海',job:
vue笔记
不识地理不懂距离
简写v-bind:v-on@计算属性是响应式,值更新再计算,函数不是,每次都调用函数v-if:假的时候不渲染v-show始终渲染,只改变display属性不建议v-if与v-for一起使用多行字符串可以添加\增加易读性event.target返回是哪个DOM组件触发了事件.passive执行默认方法会忽略掉.prevent可以通过全局config.keyCodes对象自定义按键修饰符别名://可以
vue笔记9.10
那年的雨
1,下载js库输入npminstallvue2,v-for对数组或对象进行循环操作需要哪个元素(HTML的标签)循环,那么v-for就写在那个元素上使用v-for可以把obj的每个key对应的value值遍历出来,并且填到对应的li元素中v-for除了可以使用在数组上之外还可以应用在对象上3,v-for的使用浏览器打开4,table表格浏览器打开
代码随想录刷题笔记(DAY3)
*Soo_Young*
代码随想录 笔记
今日总结:虽然之前刷过链表,但这次做的是有些费力的,也有了更深的理解。整理完今天的Vue笔记就睡。。。DAY301.移除链表元素(No.203)题目链接:https://leetcode.cn/problems/remove-linked-list-elements/description/代码随想录题解:https://programmercarl.com/0203.%E7%A7%BB%E9%9
VUE笔记
半糖不加奶
前端 vue.js 笔记 前端
VUE一.VUE基础1.什么是vuevue是一套用于构建用户界面的渐进式javascript框架2.vue的特点1.采用组件化模式,提高代码复用率,便于维护代码2.声明式编码让编码人员无需直接操作DOM,提高开发效率3.使用虚拟DOM+优秀的Diff算法,尽量复用DOM节点3.初始Vue1.想让vue工作,必须创建vue实例,且传入一个配置对象2.root容器里的代码依然符合html规范,只不过混
前端进阶_狂神Vue笔记_前端核心分析_前端发展史_前后分离的演变史
1017w
vue.js javascript html
Vue笔记想要成为真正的“互联网Java全栈工程师”还有很长的一段路要走,其中前端是绕不开的一门必修课。本阶段课程的主要目的就是带领Java后台程序员认识前端、了解前端、掌握前端,为实现成为“互联网Java全栈工程师”再向前迈进一步。一、前端核心分析1.1、概述Soc原则:关注点分离原则Vue的核心库只关注视图层,方便与第三方库或既有项目整合。HTML+CSS+JS:视图:给用户看,刷新后台给的数
狂神Vue笔记最全最相同
小小小小小韩呀!
笔记 html5 javascript jquery css vue.js
狂神说Vue笔记bilibili视频地址Vue的核心库只关注视图层,方便与第三方库或既有项目整合。HTML+CSS+JS:视图:给用户看,刷新后台给的数据网络通信:axios页面跳转:vue-router状态管理:vuexVue-UI:ICE,ElementUI一、概述Vue(读音/vjuː/,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,发布于2014年2月。与其它大型
VUE笔记
岁碎难相见
vue.js 前端 javascript
目录第一天1.vue实例2.插值表达式3.VUE响应式特性4.安装VUE开发者工具5.VUE指令5.1v-html5.2v-show和v-if5.3v-else和v-else-if5.4v-on(@事件名)5.5v-bind(:属性名=“表达式”)5.6图片切换案例5.7v-for5.8渲染图书列表并删除指定图书5.9v-for中的key5.10v-model6.案例-小黑记事本6.1渲染和删除6
Vue学习笔记01-基础部分
sgxmr
前端 vue.js
文章目录VUE笔记-01基础1、简介mvvmES6补充js高阶函数let/varconst增强字面量写法2、基础2.1、引入2.2、第一个Vue程序el挂载点data数据对象methodsVue的生命周期(补)2.3、Vue指令**Mustache:胡子/胡须.****v-once**不经常**v-pre**cloak(了解)v-htmlv-textv-on绑定事件v-onv-on修饰符v-on参
Vue笔记(五)路由进阶
NameExist
Vue vue.js 笔记 javascript
导航守卫vue-router提供导航守卫主要通过跳转或**取消*的方式守卫导航。有很多方式植入路由导航中:全局的、单个路由独享的,或者组件级的。全局前置守卫:beforeEach。每个守卫接收两个参数:to:将要进入的目标from:当前导航正要离开的路由constrouter=createRouter({...})router.beforeEach((to,from)=>{//如果返回false会
千锋 Vue 详细笔记整理
sail Jamie
前端 vue.js 前端框架 前端
视频笔记是根据B站千锋涛哥-SpringBoot+vue+前后端分离项目《锋迷商城》实战课-完结版进行整理的笔记可上gitee仓库自取千锋Vue笔记整理一、vue的简介1.1使用JQuery的复杂性问题1.2VUE简介1.2.1前端框架1.2.2MVVM二、vue入门使用2.1vue的引入2.2入门案例--HelloWorld三、vue的语法3.1基本类型数据和字符串3.2对象类型数据3.3条件v
Vue笔记:记一个base64转blob数据流,再转化为图片Url
Phl_zovnf
笔记 javascript 前端 vue.js
主要是将base64字段转化成blob数据流,再转换为图片Url,用于src引用地址base64ImgtoFile//图片base64转blob数据流base64ImgtoFile(dataurl,filename="file"){constarr=dataurl.split(",");constmime=arr[0].match(/:(.*?);/)[1];constsuffix=mime.sp
Vue笔记 路由的query参数、命名路由、路由的params参数、路由的props配置
翘阳啦
Vue 前端 javascript vue.js
一、路由的query参数1、传递参数{{m.title}} {{m.title}} 2、接收参数$route.query.id$route.query.title二、命名路由
Vue学习笔记-总结
学编程的LY
vue.js javascript
狂神说Vue笔记Vue的核心库只关注视图层,方便与第三方库或既有项目整合。HTML+CSS+JS:视图:给用户看,刷新后台给的数据网络通信:axios页面跳转:vue-router状态管理:vuexVue-UI:ICE,ElementUI一、前端核心分析1.VUE概述Vue(读音/vju/,类似于view)是一套用于构建用户界面的渐进式框架,发布于2014年2月。与其它大型框架不同的是,Vue被设
16.VUE
码农碎碎念
java vue vue.js vue 前端
狂神说Vue笔记Vue的核心库只关注视图层,方便与第三方库或既有项目整合。HTML+CSS+JS:视图:给用户看,刷新后台给的数据网络通信:axios页面跳转:vue-router状态管理:vuexVue-UI:ICE,ElementUI一、前端核心分析1.VUE概述Vue(读音/vju/,类似于view)是一套用于构建用户界面的渐进式框架,发布于2014年2月。与其它大型框架不同的是,Vue被设
Vue快速入门
codecapture
前端 vue.js 前端 javascript
狂神说Vue笔记想要成为真正的“互联网Java全栈工程师”还有很长的一段路要走,其中前端是绕不开的一门必修课。本阶段课程的主要目的就是带领Java后台程序员认识前端、了解前端、掌握前端,为实现成为“互联网Java全栈工程师”再向前迈进一步。视频链接:https://www.bilibili.com/video/BV18E411a7mC?p=16&vd_source=c2d3149b8b6fdae1
vue笔记3 虚拟dom、重流、diff
前端之旅
Vue vue
本文锚点老规矩先放链接致敬作者虚拟domtips:重排(回流)和重绘v-showv-if真实DOM和其解析流程(浏览器)diff算法传统diff算法Reactdiff算法vuediff算法vue和react的diff算法的区别不能用index作为key的原因总结老规矩先放链接致敬作者使用虚拟dom和真实dom的区别详细理解重绘与回流/重排的过程display:none和visibility:hid
辗转相处求最大公约数
沐刃青蛟
C++ 漏洞
无言面对”江东父老“了,接触编程一年了,今天发现还不会辗转相除法求最大公约数。惭愧惭愧!
为此,总结一下以方便日后忘了好查找。
1.输入要比较的两个数a,b
忽略:2.比较大小(因为后面要的是大的数对小的数做%操作)
3.辗转相除(用循环不停的取余,如a%b,直至b=0)
4.最后的a为两数的最大公约数
&
F5负载均衡会话保持技术及原理技术白皮书
bijian1013
F5 负载均衡
一.什么是会话保持? 在大多数电子商务的应用系统或者需要进行用户身份认证的在线系统中,一个客户与服务器经常经过好几次的交互过程才能完成一笔交易或者是一个请求的完成。由于这几次交互过程是密切相关的,服务器在进行这些交互过程的某一个交互步骤时,往往需要了解上一次交互过程的处理结果,或者上几步的交互过程结果,服务器进行下
Object.equals方法:重载还是覆盖
Cwind
java generics override overload
本文译自StackOverflow上对此问题的讨论。
原问题链接
在阅读Joshua Bloch的《Effective Java(第二版)》第8条“覆盖equals时请遵守通用约定”时对如下论述有疑问:
“不要将equals声明中的Object对象替换为其他的类型。程序员编写出下面这样的equals方法并不鲜见,这会使程序员花上数个小时都搞不清它为什么不能正常工作:”
pu
初始线程
15700786134
暑假学习的第一课是讲线程,任务是是界面上的一条线运动起来。
既然是在界面上,那必定得先有一个界面,所以第一步就是,自己的类继承JAVA中的JFrame,在新建的类中写一个界面,代码如下:
public class ShapeFr
Linux的tcpdump
被触发
tcpdump
用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支 持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
实用命令实例
默认启动
tcpdump
普通情况下,直
安卓程序listview优化后还是卡顿
肆无忌惮_
ListView
最近用eclipse开发一个安卓app,listview使用baseadapter,里面有一个ImageView和两个TextView。使用了Holder内部类进行优化了还是很卡顿。后来发现是图片资源的问题。把一张分辨率高的图片放在了drawable-mdpi文件夹下,当我在每个item中显示,他都要进行缩放,导致很卡顿。解决办法是把这个高分辨率图片放到drawable-xxhdpi下。
&nb
扩展easyUI tab控件,添加加载遮罩效果
知了ing
jquery
(function () {
$.extend($.fn.tabs.methods, {
//显示遮罩
loading: function (jq, msg) {
return jq.each(function () {
var panel = $(this).tabs(&
gradle上传jar到nexus
矮蛋蛋
gradle
原文地址:
https://docs.gradle.org/current/userguide/maven_plugin.html
configurations {
deployerJars
}
dependencies {
deployerJars "org.apache.maven.wagon
千万条数据外网导入数据库的解决方案。
alleni123
sql mysql
从某网上爬了数千万的数据,存在文本中。
然后要导入mysql数据库。
悲剧的是数据库和我存数据的服务器不在一个内网里面。。
ping了一下, 19ms的延迟。
于是下面的代码是没用的。
ps = con.prepareStatement(sql);
ps.setString(1, info.getYear())............;
ps.exec
JAVA IO InputStreamReader和OutputStreamReader
百合不是茶
JAVA.io操作 字符流
这是第三篇关于java.io的文章了,从开始对io的不了解-->熟悉--->模糊,是这几天来对文件操作中最大的感受,本来自己认为的熟悉了的,刚刚在回想起前面学的好像又不是很清晰了,模糊对我现在或许是最好的鼓励 我会更加的去学 加油!:
JAVA的API提供了另外一种数据保存途径,使用字符流来保存的,字符流只能保存字符形式的流
字节流和字符的难点:a,怎么将读到的数据
MO、MT解读
bijian1013
GSM
MO= Mobile originate,上行,即用户上发给SP的信息。MT= Mobile Terminate,下行,即SP端下发给用户的信息;
上行:mo提交短信到短信中心下行:mt短信中心向特定的用户转发短信,你的短信是这样的,你所提交的短信,投递的地址是短信中心。短信中心收到你的短信后,存储转发,转发的时候就会根据你填写的接收方号码寻找路由,下发。在彩信领域是一样的道理。下行业务:由SP
五个JavaScript基础问题
bijian1013
JavaScript call apply this Hoisting
下面是五个关于前端相关的基础问题,但却很能体现JavaScript的基本功底。
问题1:Scope作用范围
考虑下面的代码:
(function() {
var a = b = 5;
})();
console.log(b);
什么会被打印在控制台上?
回答:
上面的代码会打印 5。
&nbs
【Thrift二】Thrift Hello World
bit1129
Hello world
本篇,不考虑细节问题和为什么,先照葫芦画瓢写一个Thrift版本的Hello World,了解Thrift RPC服务开发的基本流程
1. 在Intellij中创建一个Maven模块,加入对Thrift的依赖,同时还要加上slf4j依赖,如果不加slf4j依赖,在后面启动Thrift Server时会报错
<dependency>
【Avro一】Avro入门
bit1129
入门
本文的目的主要是总结下基于Avro Schema代码生成,然后进行序列化和反序列化开发的基本流程。需要指出的是,Avro并不要求一定得根据Schema文件生成代码,这对于动态类型语言很有用。
1. 添加Maven依赖
<?xml version="1.0" encoding="UTF-8"?>
<proj
安装nginx+ngx_lua支持WAF防护功能
ronin47
需要的软件:LuaJIT-2.0.0.tar.gz nginx-1.4.4.tar.gz &nb
java-5.查找最小的K个元素-使用最大堆
bylijinnan
java
import java.util.Arrays;
import java.util.Random;
public class MinKElement {
/**
* 5.最小的K个元素
* I would like to use MaxHeap.
* using QuickSort is also OK
*/
public static void
TCP的TIME-WAIT
bylijinnan
socket
原文连接:
http://vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html
以下为对原文的阅读笔记
说明:
主动关闭的一方称为local end,被动关闭的一方称为remote end
本地IP、本地端口、远端IP、远端端口这一“四元组”称为quadruplet,也称为socket
1、TIME_WA
jquery ajax 序列化表单
coder_xpf
Jquery ajax 序列化
checkbox 如果不设定值,默认选中值为on;设定值之后,选中则为设定的值
<input type="checkbox" name="favor" id="favor" checked="checked"/>
$("#favor&quo
Apache集群乱码和最高并发控制
cuisuqiang
apache tomcat 并发 集群 乱码
都知道如果使用Http访问,那么在Connector中增加URIEncoding即可,其实使用AJP时也一样,增加useBodyEncodingForURI和URIEncoding即可。
最大连接数也是一样的,增加maxThreads属性即可,如下,配置如下:
<Connector maxThreads="300" port="8019" prot
websocket
dalan_123
websocket
一、低延迟的客户端-服务器 和 服务器-客户端的连接
很多时候所谓的http的请求、响应的模式,都是客户端加载一个网页,直到用户在进行下一次点击的时候,什么都不会发生。并且所有的http的通信都是客户端控制的,这时候就需要用户的互动或定期轮训的,以便从服务器端加载新的数据。
通常采用的技术比如推送和comet(使用http长连接、无需安装浏览器安装插件的两种方式:基于ajax的长
菜鸟分析网络执法官
dcj3sjt126com
网络
最近在论坛上看到很多贴子在讨论网络执法官的问题。菜鸟我正好知道这回事情.人道"人之患好为人师" 手里忍不住,就写点东西吧. 我也很忙.又没有MM,又没有MONEY....晕倒有点跑题.
OK,闲话少说,切如正题. 要了解网络执法官的原理. 就要先了解局域网的通信的原理.
前面我们看到了.在以太网上传输的都是具有以太网头的数据包. 
Android相对布局属性全集
dcj3sjt126com
android
RelativeLayout布局android:layout_marginTop="25dip" //顶部距离android:gravity="left" //空间布局位置android:layout_marginLeft="15dip //距离左边距
// 相对于给定ID控件android:layout_above 将该控件的底部置于给定ID的
Tomcat内存设置详解
eksliang
jvm tomcat tomcat内存设置
Java内存溢出详解
一、常见的Java内存溢出有以下三种:
1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存。
可以利用JVM提
Java6 JVM参数选项
greatwqs
java HotSpot jvm jvm参数 JVM Options
Java 6 JVM参数选项大全(中文版)
作者:Ken Wu
Email:
[email protected]
转载本文档请注明原文链接 http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm!
本文是基于最新的SUN官方文档Java SE 6 Hotspot VM Opt
weblogic创建JMC
i5land
weblogic jms
进入 weblogic控制太
1.创建持久化存储
--Services--Persistant Stores--new--Create FileStores--name随便起--target默认--Directory写入在本机建立的文件夹的路径--ok
2.创建JMS服务器
--Services--Messaging--JMS Servers--new--name随便起--Pers
基于 DHT 网络的磁力链接和BT种子的搜索引擎架构
justjavac
DHT
上周开发了一个磁力链接和 BT 种子的搜索引擎 {Magnet & Torrent},本文简单介绍一下主要的系统功能和用到的技术。
系统包括几个独立的部分:
使用 Python 的 Scrapy 框架开发的网络爬虫,用来爬取磁力链接和种子;
使用 PHP CI 框架开发的简易网站;
搜索引擎目前直接使用的 MySQL,将来可以考虑使
sql添加、删除表中的列
macroli
sql
添加没有默认值:alter table Test add BazaarType char(1)
有默认值的添加列:alter table Test add BazaarType char(1) default(0)
删除没有默认值的列:alter table Test drop COLUMN BazaarType
删除有默认值的列:先删除约束(默认值)alter table Test DRO
PHP中二维数组的排序方法
abc123456789cba
排序 二维数组 PHP
<?php/*** @package BugFree* @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $*** Sort an two-dimension array by some level
hive优化之------控制hive任务中的map数和reduce数
superlxw1234
hive hive优化
一、 控制hive任务中的map数: 1. 通常情况下,作业会通过input的目录产生一个或者多个map任务。 主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M, 可在hive中通过set dfs.block.size;命令查看到,该参数不能自定义修改);2. 
Spring Boot 1.2.4 发布
wiselyman
spring boot
Spring Boot 1.2.4已于6.4日发布,repo.spring.io and Maven Central可以下载(推荐使用maven或者gradle构建下载)。
这是一个维护版本,包含了一些修复small number of fixes,建议所有的用户升级。
Spring Boot 1.3的第一个里程碑版本将在几天后发布,包含许多