Vue-基础语法(一)

一、了解组件、库、框架的区别?

前端框架、组件与库的区别(转) :https://blog.csdn.net/a519781181/article/details/78975689

二、Vue 是什么?

  • Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的 渐进式框架

  • 声明式渲染-组件系统-客户端路由-集中式状态管理。。。

  • vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合

三、Vue基本使用

1、使用Vue将helloworld 渲染到页面上

{{msg}}
// el: 标签选择器(css选择器) // data: 模型数据

四、Vue模板语法

1、前端渲染三种方式

  • 原生字符串拼接
  • 模板引擎(art-template)
  • vue模板

2、vue模板语法组成

  • 插值表达式
  • 指令
  • 事件绑定
  • 属性绑定
  • 样式绑定
  • 分支循环结构

3、插值表达式

  • 将数据填充到HTML标签中
  • 插值表达式支持基本的计算操作
  • 不能给属性绑定值
 
{{ "Hello World" + 123 + "你好" }} 我是字符串

4、指令

  • 本质就是标签的自定义属性
  • Vue中指定都是以 v- 开头(比如图片的 v-src

4.1、v-cloak(解决插值表达式闪烁问题)

  • 插值表达式渲染的标签会有闪动的问题,vue先把表达式 {{xxx}} 显示在页面,再替换成该显示的内容
  • 防止页面加载时出现闪烁问题

2、 让带有插值语法的标签添加 v-cloak 属性,在数据渲染完之后,v-cloak 属性会被自动去除, v-cloak一旦移除也就是没有这个属性了,属性选择器就选择不到该标签, 也就是对应的标签会变为可见
{{msg}}

4.2、v-text (没有闪烁问题)

  • v-text 指令用于将数据填充到标签中,作用于插值表达式类似,但是没有闪动问题

  • 如果数据中有HTML标签会将html标签一并输出(innerText)

  • 注意:此处为单向绑定,数据对象上的值改变,插值会发生变化;但是当插值发生变化并不会影响数据对象的值

注意:在指令中不要写插值语法,直接写对应的变量名称,在 v-text 中,赋值的时候不要在写 插值语法 一般属性中不加 {{}} 直接写 对应 的数据名

{{msg}}

4.3、v-html

  • 用法和v-text 相似 但是他可以将HTML片段填充到标签中

  • 可能有安全问题, 一般只在可信任内容上使用 v-html永不用在用户提交的内容上

  • 它与v-text区别在于v-text输出的是纯文本,浏览器不会对其再进行html解析,但v-html会将其当html标签解析后输出。

输出:html标签在渲染的时候被解析

{{message}}

输出:通过双括号绑定

输出:html标签在渲染的时候被源码输出

4.4、v-pre

  • 显示原始信息,跳过编译过程

  • 跳过这个元素和它的子元素的编译过程。

  • 一些静态的内容不需要编译,加这个指令可以加快渲染

{{ this will not be compiled }}
显示的是{{ this will not be compiled }} 

{{msg}}
即使data里面定义了msg这里仍然显示 {{msg}}


总结:插值表达式、v-text、v-pre

插值表达式 v-text v-html v-pre
填充纯文本,支持简单计算 填充纯文本,语法简洁 填充HTML片段,存在安全问题,本网站内部数据可以用,第三方数据不可用 填充原始信息 显示原始信息 跳过vue编译成原生代码的过程
只能写在标签中间,不能给属性绑定值 会覆盖标签中原内容 会覆盖原内容

4.5、数据响应式

数据驱动内容变化,不需要显示地操作DOM

4.6、v-once

  • 执行一次性的插值【当数据改变时,插值处的内容不会继续更新】
  • 执行一次性的插值,数据响应式不起作用
即使data里面定义了msg 后期我们修改了 仍然显示的是第一次data里面存储的数据即 Hello Vue.js 

{{ msg }}

4.7、双向数据绑定

  • 当数据发生变化的时候,视图也就发生变化
  • 当视图发生变化的时候,数据也会跟着同步变化

4.8、v-model

  • v-model 是一个指令,限制在