• vue——VM对象和基础指令


    一、VUE

    简介:

    • Vue.js是前端的主流框架之一,和Angular.js、React.js并称为前端三大主流框架。
    • 是一款用于构建用户界面的 JavaScript 框架。
    • Vue.js 是一套构建用户界面的 渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计
    • 它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助用户高效地开发用户界面。
    • 是个很多js工具代码的js文件。

    Vue.js 的特点:

    • 数据驱动
    • Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。
    • Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。

    Vue.js 的目标

    • 通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件

    前端三大主流框架: 

    vue.js 数据驱动和组件化开发,轻量级,分层渐进式框架
    React.js 数据驱动和组件化开发,灵活性很高,需要什么都得自己构建逻辑自己写
    Angular.js 数据驱动 1.0 ,加上了组件化开发2.0,重量级框架;大型企业OA办公(指令系统

    引入方式:

    第一类:

            1.本地js文件引入

            2.CDN引入

            3.webpack 打包

            4.编辑器生成(HBuilder)

    第二类:(vue脚手架 需要加载器转码再引入到网页中)

            1.自己打包配置加载器(自己构建vue脚手架)

            2.官方脚手架

               npm i @vue/cli -g

               vue create app

               cd app

               npm run serve

            3.可视化项目管理方式 vue ui

            4.编辑器直接生成脚手架环境的方式(HBuilder)

     包的版本管理

    示例版本:7.18.6   已更新到12.3.8

    "~7.18.6"  :直接下载最新版 即12.3.8

    "^7.18.6"   :下载7-版本号的最新版   如 7.20.8(7开头的版本中的最新版)

    "7.18.6"     :下载固定版本 即7.18.6  不能升级

    二、VM对象

    1. let vm = new Vue({
    2. el: "#app",
    3. data: {
    4. }
    5. })

     意义:

    • vm为new Vue构造函数创建的对象 
    • el:element 选择元素,填选择器
    • data:data对象里面的是数据源
    • data的属性值与vm对象的属性值一样是因为把data的属性也设置到vm上

    三、插值表达式

    {{js表达式}}

    • 在标签尖括号中使用{{}}插入js表达式(变量,函数调用,三目运算等)
    • 插值表达式中的标识符 代表vue对象中的data的属性名或者methods中的方法名
    • {{js表达式}}外不是js的环境  直接显示内容

    1. <div id="app">
    2. <h2>{{msg1}}h2>
    3. <h2>{{msg1+"这一句是js表达式(拼接)"}}h2>
    4. <h3>{{obj.name}}:{{obj.age}}h3>
    5. <h4>现在学的是:{{arr[0]}}h4>
    6. div>
    7. <script>
    8. let vm = new Vue({
    9. el: "#app",
    10. data: {
    11. msg1: "hello",
    12. obj: {
    13. age: 21,
    14. name: "haha",
    15. },
    16. arr: ["vue", "react"],
    17. }
    18. })
    19. script>

     显示结果:

    四、文本指令

    •  v-html ==>相当于innerHTML
    •  v-text==>相当于innerText
    • v-pre==>静默-跳过编译 :插件表达式直接被识别为文本,而不是js表达式
    • v-cloak==>有属性的标签相当于在构建虚拟节点的时候就会有这个属性:

            当data的数据生成时,该标签会自动去掉属性

            可以利用这个特性在css中把某个元素在加载初期写成隐藏样式

    1. <div class="app1" v-cloak>
    2. <div v-text="msg2">div>
    3. <div v-html="msg3">div>
    4. <div v-pre>{{msg4}}div>
    5. <span v-html>{{msg5}}span>
    6. <br><br>
    7. <div v-text="info.name">div>
    8. <div v-html="info.snum">div>
    9. <br><br>
    10. div>
    11. <script>
    12. new Vue({
    13. el: ".app1",
    14. data: {
    15. msg2: "<h2>v-text :底层是innerTexth2>",
    16. msg3: "<h2>v-html :底层是innerHTMLh2>",
    17. msg4: "跳过编译 (静默) 原样显示内容{{msg4}}",
    18. msg5:"上一内容是 跳过编译(静默) 所以原样显示内容{{msg4}}",
    19. info: {
    20. name: "xixi",
    21. snum:"H5220301",
    22. },
    23. }
    24. })
    25. script>

     显示结果:

     面试题:

    vue第一次加载的时候 页面上的数据会闪烁:

       界面加载的时候会把节点直接挂载到文档树中,导致{{js表达式}}这个字符串会显示一下

       vue对象生成data数据时会再次刷新界面 把{{js表达式}}字符串替换成结果字符串

       所以界面第一次加载的时候会闪屏

    解决办法:

     1.添加一个属性选择器:v-cloak 在vue框架运行时 会把项目中的v-cloak属性去掉

         css中 :[v-cloak]{display:none}  

         div中添加属性选择器 运行vue前锁住代码   运行时解锁代码

     2.$mount挂载

     3.尽量使用指令(v-html,v-text)渲染页面

    五:属性绑定

    • 所有标签的属性都可以绑定
    • 标准写法:   v-bind:src=""     v-bind:value=""
    • 简写形式:   :src=""               :value=""
    1. <div class="app2">
    2. <img v-bind:src="obj.tx">
    3. <div v-text="obj.name">div>
    4. <h3 v-html="week[0]">h3>
    5. <a v-bind:href="baidu[0].source">{{baidu[0].site}}a>
    6. <a v-bind:href="baidu[0].source" v-html="baidu[0].site">a><br>
    7. <input type="text" v-bind:value="email"><br>
    8. <input type="text" :value="email">
    9. div>
    10. <script>
    11. new Vue({
    12. el: ".app2",
    13. data: {
    14. obj: {
    15. name: "dog",
    16. age: 1,
    17. tx: "https://t7.baidu.com/it/u=848096684,3883475370&fm=193&f=GIF"
    18. },
    19. week: ["Monday", "Friday"],
    20. baidu: [{
    21. source: "http://www.baidu.com",
    22. site: "百度"
    23. }],
    24. email: "123@qq.com",
    25. }
    26. })
    27. script>

    显示结果:

  • 相关阅读:
    柯桥日常口语学习|生活英语|实用口语口语天天练
    【C】逆序字符串(俩种递归思路)
    js_for循环实操
    Dockerfile使用介绍(入门教程)
    隐藏的增长动力:中国工业的售后服务
    智能矩阵系统解决的问题?
    linux远程桌面管理工具xrdp
    微信小程序对接发货功能
    PX4模块设计之二十五:DShot模块
    MFC-TCP网络编程服务端-Socket
  • 原文地址:https://blog.csdn.net/qq_56668869/article/details/126590028