0
点赞
收藏
分享

微信扫一扫

Vue2(笔记02) - Vue核心 - 初识Vue

初识Vue

先引入 Vue.js ;

<script src="./res/vue.js"></script>

vue.js 是开发版的 vue.js 会有报错提示,比较友好;生产环境中使用 vue.min.js

准备好一个容器

<div id="root">
<h1>Hello {{name}}</h1>
</div>

再写一段Vue:

// 创建vue实例
const vm = new Vue({
el: '#root', // 用于指定当前 Vue实例为哪个容器服务,值通常为 css选择器字符串
data: { // data 用于存储数据,供 el 所指定容器使用,仍然是配置对象的方式;
name:"Vue"
}
});

效果:

Vue2(笔记02) - Vue核心 - 初识Vue_模板语法

左边显示了页面效果,右边显示 ​​Vue Devtools​​ 插件的效果;在插件中,可以修改 Vue 的值,会在左侧页面中同步修改,非常方便;

注意: 插件里的 Root 是指根,跟页面中的 #root 没关系;

【代码解析】:

1)el ,是 element 的缩写;

用于跟容器中的 ​​#root​​  绑定,一个 Vue 容器只会被一个 Vue 实例接管

2)data ,存储实例对象的各种属性

可供容器中使用;

3){{name}} ,是Vue的插值语法方式,固定写法,用在标签内;

同时 ​​{{}}​​​ 也是JS表达式,可以执行有值的运算,如:​​{{1+3}}​​ 或​​{{Date.now()}}​​;

还可以这样:​​{{name.toUpperCase()}}​​,输出变大写了;

控制台修改 data 的属性值,前端界面上会自动更新;

Vue2(笔记02) - Vue核心 - 初识Vue_Vue_02


【总结】:

1)Vue 本质是一个构造函数,实例化对象要 new,所有属性参数都放在配置对象中;

2)root 容器里的代码依然符合 html 规范,只是混入了 Vue 语法;

3)root 容器里的代码被称为 “Vue模板” ;

4)Vue实例和容器是一一对应的;

5)开发中只有一个Vue实例,并且会配合着组件一起使用;

6)​​{{XXX}}​​ 中的XXX要写JS表达式,且XXX可以自动读取到 data 中的所有属性;

7)一旦 data 中的数据发生改变,那么模板中用到该数据的地方也会自动更新;


模板语法

Vue模板语法分 插值语法指令语法

写个插值语法和指令语法:

<div id="root">
<h1>插值语法</h1>
<h3>你好,{{name}}</h3>
<hr>
<h1>指令语法</h1>
<a v-bind:href="url">51CTO首页</a>
</div>

使用 ​​v-bind:​​给 href 这个标签属性绑定了 url,这时的 url 就成了 表达式 ,相当于读取 url 这个变量,这个变量的值存在 data 中,已经写好了;

注意:写在引号中的 url 被 v-bind 绑定后,就不在是字符串了;

new Vue({
el: '#root',
data: {
name: "Jack",
url:"https://www.51cto.com/"
}
});

页面效果:

Vue2(笔记02) - Vue核心 - 初识Vue_Vue_03

元素结果:

Vue2(笔记02) - Vue核心 - 初识Vue_模板语法_04


Vue 里的指令语法都是 ​​v-xxx​​ 的形式,如: ​​v-if​​ ,​​v-modle​​ ,​​v-on​​ 等;

​v-bind​​ 也可以绑定其他属性,并不是只有 href,如:title 和自定义属性;

<a v-bind:href="url" v-bind:title="slogan" v-bind:date-index="index">51CTO首页</a>
//在data中也定义个slogan和index属性
data:{
//...
slogan:"技术成就梦想",
index:66
}

Vue2(笔记02) - Vue核心 - 初识Vue_Vue_05

​v-bind​​​ 可以简写在​​:​​,简化代码量;

<a v-bind:href="url" v-bind:title="slogan" v-bind:date-index="index">51CTO首页</a>
<!-- 等价于 -->
<a :href="url" :title="slogan" :data-index="index">51CTO首页</a>

上面的写法再变一变:

<div id="root">
<h1>插值语法</h1>
<h3>你好,我叫{{name}}({{age}}岁),在学习{{course}}。</h3>
<hr>
<h1>指令语法</h1>
<a :href="webSite.url" :title="webSite.slogan" :data-index="webSite.index">{{webSite.name}}首页</a>
</div>

new Vue({
el: '#root',
data: {
name: "Jack",
age: 28,
course: "Vue",
webSite: {
name: "51CTO",
slogan: "技术成就梦想",
url: "https://www.51cto.com/",
index: 66
}
}
});

如果要调用的属性比较多,尤其是重命情况,那可以多级分层出来,单独写在配置对象中;

注意在指令绑定时,要写成 ​​​webSite.name​​ 的形式,把层级体现出来;

看下结果:

Vue2(笔记02) - Vue核心 - 初识Vue_Vue_06

【总结】

Vue 模板语法有2大类:

1)插值语法:

功能:用于解析标签体内容;

写法:​​{{xxx}}​​,xxx 是 JS 表达式,且可以直接读取到 data 中的所有属性;

2)指令语法:

功能:用于解析标签(包括:标签属性、标签体内容、绑定事件...); 

举例: ​​v-bind:href="url"​​​  或简写成  ​​:href="url"​​ , xxx 同样要写成JS表达式,且可以直接读取到 data 中的所有属性;

备注:Vue 中有很多的指令,且形式都是: ​​v-xxx​​ ,此处只是拿 v-bind 举个例子;



举报

相关推荐

0 条评论