首页 > 其他分享 >Vue2(笔记02) - Vue核心 - 初识Vue

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

时间:2022-11-28 23:32:17浏览次数:42  
标签:02 Vue name url 语法 Vue2 data 属性

初识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_模板语法_03

元素结果:

Vue2(笔记02) - Vue核心 - 初识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_模板语法_06

【总结】

Vue 模板语法有2大类:

1)插值语法:

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

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

2)指令语法:

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

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

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



标签:02,Vue,name,url,语法,Vue2,data,属性
From: https://blog.51cto.com/ahuiok/5893810

相关文章

  • 20221126测试赛
    20221126测试赛Doc84.孤独照片时间限制:1.0s内存限制:256.0MB输入文件名:lonelyphoto.in输出文件名:lonelyphoto.out试题来源:USACO问题描述FarmerJohn最近购入......
  • 100022 求直角三角形各边各角度周长面积已知B边角A
    <?phpheader('Content-Type:text/html;charset=utf-8');define('ROOT',$_SERVER['DOCUMENT_ROOT']);includeROOT.'/assets/php/head.php';$tit='求直角三角形各......
  • Vue模板语法
     Vue模板语法有2大类:          1.插值语法:              功能:用于解析标签体内容。         ......
  • 初识Vue
    初识Vue        1.想让Vue工作,就必须创建一个Vue实例,且要传入一个配置对象;        2.root容器里的代码依然符合html规范,只不过混入了......
  • 100021 求直角三角形周长面积各边各角度已知其底高
    <?phpheader('Content-Type:text/html;charset=utf-8');define('ROOT',$_SERVER['DOCUMENT_ROOT']);includeROOT.'/assets/php/head.php';$tit='求直角三角形各......
  • vue3相较于vue2的改动
    v-if和v-for的优先级在vue2中:当v-if和v-for同时使用时,v-for的优先级高于v-if(因此我们通常需要计算属性先对数据进行加工处理,以达到性能优化的目的)在vue3中:当v-if和v-for......
  • CSP & NOIP 2022 游记
    这两个比赛基本都没有什么比赛之外的经历,一起写了(CSP初赛不会真有高三选手复习初赛吧随便考了考,90分左右,还挺高。不过还是要说今年的题面实在阴间。你说的对,但是《c......
  • Vue2(笔记01) - 基础 - Vue简介
    笔记来自尚硅谷课程:1Vue是什么?一套用于构建用户界面的渐进式Javascript框架;它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助你高效......
  • Vue项目“TypeError: Cannot read property ‘_wrapper’ of undefined
    前情最近在开发一个H5营销活动项目,为了更高的开发效率我使用了Vue全家桶来实现。坑位在开发中遇到一个奇怪报错(报错截图如下),从提示看也定位不到是哪里出问题Why?......
  • 2022-11-28 古代万物诗意名称
    云:纤凝月亮:望舒太阳:扶光风:扶摇酒;忘忧君茶:不夜侯雨伞:撑花雨:灵泽风筝:纸鸢雪:寒酥梅花:疏影小草:柔甲天空:碧落茄子:落苏香菜:满天星柿子:凌霜侯满月:冰轮银河:星汉......