Vuejs新手入门Word文件下载.docx
《Vuejs新手入门Word文件下载.docx》由会员分享,可在线阅读,更多相关《Vuejs新手入门Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
<
iressage:
'
负直忙筍厶"
+newDate().toLocaleString{)
v-bind属性被称为指令。
指令带有前缀v-,以表示它们是Vue提供的特殊属性。
可能你已经猜到了,它们会在渲染的DOME应用特殊的响应式行为。
cdivid=Ppp・3"
pv-if-'
eeen'
我了*丿p*
皿「护閃二newVue^el:
b#app-3H,data:
b;
eerk:
Lrje
}
})
条件判断
divid='
app-4F>
11v-for,=J,todointodos'
*
{\todatext卜]
/li>
/ol*
varapp4-newVue({
"
:
■劭pp"
’
data:
todos:
I
{text:
宇时Jav&
Script'
}.
{tert:
■宇习Vue'
}t
}
1
卜
for循环方法
divid-'
^pp-5'
weesage}
cbuttonu-an:
click="
revera.ea适埒消启urbutturiA
varnppS■n亡耐Vu#?
(-(
el:
#app-b,
\
iressage:
HelloVue^je!
1
}・
methods:
f
reverseHessege:
function()(
thia.message-this™(nc3&
agersplit['
J).reverEef)joint'
)
为了让用户和你的应用进行互动,我们可以用v-on指令绑定一个事件监听器,
通过它调用我们Vue实例中定义的方法,也就是添加事件,举一反三飞,比如v-on:
blur,我觉得可行呀
注意在reverseMessage方法中,我们更新了应用的状态,但没有触碰DO—
所有的DOM操作都由Vue来处理,你编写的代码不需要关注底层逻辑。
app-6"
message
winputy-rodel=mes&
age*
fdiv>
/arappb=ne^Vue(■(
el;
^app-6'
j
iiiessuyer'
HelloVut?
打
Vue还提供了v-model指令,它能轻松实现表单输入和应用状态之间的双向绑定。
也就是你在输入框写的值,P标签也会更改。
(可以这么说vue.js不能说是MVVM模型,但是vue都到了mvvm的启发而形成的)
你只需要明白所有的Vue组件都是Vue实例,并且接受相同的选项对象即可我理解vue是一个完全是响应式的东西。
当数据改变时,视图会进行重渲染除了data属性,Vue实例暴露了一些有用的实例属性与方法。
它们都有前缀$,
以便与用户定义的属性区分开来。
vardata=(a:
1}
varviii二newVne({el:
data:
data
}>
vit,Edata===datA--tr.e
vir.=-=document.getElerentByld(bexairple'
]--t
/1SwatchjE—F丈制方?
4
vir.Swatch('
a'
function(newValuefoldValue){
//这*面谓将衣Fir.扩改喪所调用
实例生命周期每个Vue实例在被创建之前都要经过一系列的初始化过程。
例如需要设置数据监听、编译模板、挂载实例到DOM在数据变化时更新DOM?
。
同时在这个过程中也会运行一些叫做生命周期钩子的函数,给予用户机会在一些特定的场景下添加他们自己的代码。
比如created钩子可以用来在一个实例被创建之后执行代码:
cr^a;
function()f
//this'
指冋vm实filconoole-lofl(1ais:
+thio.a)
(重点)下图说明了实例的生命周期。
你不需要立马弄明白所有的东西,不过随着你的不断学习和使用,它的参考价值会越来越高。
(图在下面呢,太长,装不
下了。
OO)
(created}
when
vm.$mount(el)
iscalled
templatecompilationisperformedahead-of-timeIfusing
abuildstep,egsingle-filecomponents
插值
数据绑定最常见的形式就是使用“Mustache”语法(双大括号)的文本插值:
«
apen>
NesBage:
Hmag}}<
/span>
通过使用v-once指令,你也能执行一次性地插值,当数据改变时,插值处的内容不会更新。
这个特禺僉曲曼:
i{巾购}}<
/spen>
(简单的说就是就算更改data也不会改变标签里的值)
双大括号会将数据解释为普通文本,而非HTML弋码。
为了输出真正的HTML你
需要使用v-html指令
v-html='
ra^Html"
(可以这么说,假如data里的rawHtml是“id=”id””,html是可以识别为html的代码)
这个div的内容将会被替换成为属性值rawHtml,直接作为HTM■—会忽略解析属性值中的数据绑定。
注意,你不能使用v-html来复合局部模板,因为Vue不
是基于字符串的模板引擎。
反之,对于用户界面(UI),组件更适合作为可重用和可组合的基本单位。
使用JavaScript表达式
迄今为止,在我们的模板中,我们一直都只绑定简单的属性键值。
但实际上,对于所有的数据绑定,Vue.js都提供了完全的JavaScript表达式支持。
(彳number+1}}
{{ok?
:
}}
{]message.Eplitf'
.reverse^-ioin('
)H
divv-bind'
list'
*id
每个绑定都只能包含单个表达式,所以下面的例子都不会生效。
vara*1}}
\{if(ak]{returnmessage卜卄
v-bind缩写
I--完塞语法—>
zv-birid:
href«
url*
直!
■■编写■—>
a:
t)ref=Jurl'
.,^/a>
v-on缩写
--凳整语辰--*
av-on:
click="
dciSDffi(»
thing"
.,<
/9>
©
clicks"
daScmething'
>
...<
/a>
它们看起来可能与普通的HTMI略有不同,但:
与@寸于特性名来说都是合法字符,在所有支持Vue.js的浏览器都能被正确地解析。
而且,它们不会出现在最终渲染的标记中。
缩写语法是完全可选的,但随着你更深入地了解它们的作用,你会庆幸拥有它们。
计算属性
cdivid='
exaraple'
cp^Originalnessage:
tiessage}}"
/p>
■ipr^ompuTenr^v^rsft.imRssag^t”reversedMessafle卜}
这只是个文字不用骨
\/arvm=newVue((
电1:
^exampleF,data:
(
message:
F
A
computedi{
H廿算層性的getterreversedMf?
ssage:
function(){fIthjs指叵wm买■例returnthio.mescage.spl2t().reverset)-Join('
结果:
Originalmessage:
Hello"
Computedreversedmessage:
olleH"
this.message.split(‘'
).reverse().join(‘'
)=data.message.split(‘'
).reverse().join(‘'
),这个方法就是将翻转字符串
我们可以将同一函数定义为一个方法而不是一个计算属性。
两种方式的最终结果确实是完全相同的。
然而,不同的是计算属性是基于它们的依赖进行缓存的。
计算属性只有在它的相关依赖发生改变时才会重新求值。
这就意味着只要message还没有发生改变,多次访问reversedMessage计算属性会立即返回之前的计算结果,而不必再次执行函数。
(这块你只需要了解就行了,说的是计算属性具有缓存功能,如果不需要缓存那就用方法的形式写就行,就是method:
{reversedMessage:
function()}这种,就不会有缓存了)自定义的侦听器
HIML
divid=Hwatch-exainple,<
P>
Askayes/noquestion:
inputv-nodel=-questiorT>
p>
{{answer
q
-因为AJAX朗0通用工貝的生态弐相当丰冨,Vug核心代码冷dx-
可以理解为成功状态的返回信息
.unvri^ruriciion(responsej\
vri.answer■.・capitalize(response.dataanswer)
U.caicn(tunciion[error;
vri.answer=eFrror1CouldnorreachtheAPT・'
+error>
4^砂判亦停止谕入等待佞痂、、如T了十十皿
「560]f你看,他设賣的500基秒骨就好理解了,错误状态的遐回佶
教程里有dome最好去试试,看他的实现过程,(侦听器)在输入框里写英文问号就行
结果;
Ihinking...
Class与Style绑定
这块对你来说也很重要,好像都很重要似得,哈哈。
我们可以传给v-bind:
class—个对象,以动态地切换class:
*div{active;
;
data:
isActlve:
trj筑
hasError:
false
i
J
上面的语法表示active这个class存在与否将取决于数据属性isActive是否为truthy(就是true)。
你可以在对象中传入更多属性来动态切换多个class。
此外,v-bind:
class指令也可以与普通
的class属性共存。
百divv-bindl:
clss3=classCbject'
/div?
-
{
classQbject:
active;
true,
Rtextdanger'
folsc
这种方式结果是class=”active”
还可以用数组的形式,就跟