• 【前端】Vue基础+本地应用


    目录

    一、Vue基础

    1.1Vue简介

    1.2第一个Vue程序

    1.3el:挂载点 

    1.4data:数据对象

    二、本地应用


    一、Vue基础

    1.1Vue简介

    1、JavaScript框架

    2、简化Dom操作

    3、响应式数据驱动

    1.2第一个Vue程序

    官方文档:Vue.js - 渐进式 JavaScript 框架 | Vue.js (vuejs.org)

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Vue基础title>
    8. head>
    9. <body>
    10. <div id="app">
    11. {{message}}
    12. div>
    13. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
    14. <script>
    15. var app = new Vue({
    16. el: "#app",
    17. data: {
    18. message: "Hello Vue!"
    19. }
    20. })
    21. script>
    22. body>
    23. html>

     创建Vue程序步骤:

    1. 导入开发版本的Vue.js
    2. 创建Vue实例对象,设置el属性和data属性
    3. 使用简洁的模板语法把数据渲染到页面上

    1.3el:挂载点 

    el是用来设置Vue实例挂载(管理)的元素

    Vue会管理el选项命中的元素及其内部的后代元素

    可以使用其他的选择器,但是建议使用ID选择器 

     可以使用其他的双标签,不能使用html和body

    1.4data:数据对象

    Vue中用到的数据定义在data中

    data中可以写复杂类型的数据

    渲染复杂类型数据时,遵守js的语法即可

    二、本地应用

    v-text:设置标签的文本值,无论内容是什么,只会解析为文本

    v-HTML:设置标签的innerHTML,内容中有html结构会被解析为标签

    v-on基础:为元素绑定事件,事件名不需要写on,指令可以简写为@,绑定的方法定义在methods属性中,方法内部通过this关键字可以访问定义的data中数据

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. head>
    9. <body>
    10. <div id="app">
    11. <h2 v-text="message">h2>
    12. <h2>{{message}}呀h2>
    13. <p v-html="content">p>
    14. <p v-text="content">p>
    15. <input type="button" value="v-on指令" v-on:click="doIt">
    16. <input type="button" value="v-on指令" @click="doIt">
    17. <input type="button" value="双击事件" @dblclick="doIt">
    18. <h2 @click="changeMessage">{{message}}h2>
    19. div>
    20. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
    21. <script>
    22. var app = new Vue({
    23. el: "#app",
    24. data: {
    25. message: "hello,Vue",
    26. content: "百度"
    27. },
    28. methods: {
    29. doIt: function () {
    30. alert('做IT');
    31. },
    32. changeMessage: function () {
    33. this.message += "嘿呀!"
    34. },
    35. },
    36. })
    37. script>
    38. body>
    39. html>

    v-show:根据表达值的真假,切换元素的显示和隐藏,原理是修改元素的display,指令后面的内容最终解析为布尔值,true显示,false隐藏

    v-if:根据表达值的真假,切换元素的显示和隐藏(操纵dom元素)

    v-bind:设置元素的属性,语法:v-bind:属性名,可直接省略v-bind

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. <style>
    9. .active {
    10. border: 1px solid red;
    11. }
    12. style>
    13. head>
    14. <body>
    15. <div id="app">
    16. <button @click="changeIsShow">切换图片状态button>
    17. <button @click="addAge">年龄增加button>
    18. <button @click="changeIsShow2">切换汉字状态button>
    19. <br>
    20. <img v-show="isShow" src="img/afternoon.jpg" alt="">
    21. <img v-show="age>=18" src="img/afternoon.jpg" alt="">
    22. <p v-if="isShow2">我是汉字p>
    23. <h2 v-if="temperature>=35">我是汉字h2>
    24. <img v-bind:src="imgSrc" alt="">
    25. <br>
    26. <img :src="imgSrc" alt="" :title="imgTitle+'!!!'" :class="isActive?'active':''" @click="toggletActive">
    27. <img :src="imgSrc" alt="" :title="imgTitle+'!!!'" :class="{active:isActive}" @click="toggletActive">
    28. div>
    29. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
    30. <script>
    31. var app = new Vue({
    32. el: "#app",
    33. data: {
    34. isShow: false,
    35. isShow2: false,
    36. age: 17,
    37. temperature: 30,
    38. imgSrc: "img/morning.jpg",
    39. imgTitle: "早上好",
    40. isActive: false,
    41. },
    42. methods: {
    43. changeIsShow: function () {
    44. this.isShow = !this.isShow;
    45. },
    46. addAge: function () {
    47. this.age++;
    48. },
    49. changeIsShow2: function () {
    50. this.isShow2 = !this.isShow2;
    51. },
    52. toggletActive: function () {
    53. this.isActive = !this.isActive;
    54. }
    55. }
    56. })
    57. script>
    58. body>
    59. html>

    v-for:根据数据生成列表结构,数组经常和v-for结合使用,语法(item,index)in数据

    v-on补充:传递自定义参数,事件修饰符;事件绑定的方法写成函数调用的形式,可以传入自定义参数;定义方法是需要定义形参来接收传入的实参;事件的后面跟上.修饰符可以对事件限制

    v-model:获取和设置表单元素的值(双向数据绑定)

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. head>
    9. <body>
    10. <div id="app">
    11. <button @click="add">添加数据button>
    12. <button @click="remove">删除数据button>
    13. <ul>
    14. <li v-for="item in arr">
    15. 名次:{{item}}
    16. li>
    17. ul>
    18. <h2 v-for="it in vegtables" v-bind:title="it.name">
    19. {{it.name}}
    20. h2>
    21. <button @click="doIt(66,'加油')">点击button>
    22. <input type="text" @keyup.enter="sayHi">
    23. <br>
    24. <button @click="setM">修改messagebutton>
    25. <input type="text" v-model="message" @keyup.enter="getMessage">
    26. <h2>{{message}}h2>
    27. div>
    28. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
    29. <script>
    30. var app = new Vue({
    31. el: "#app",
    32. data: {
    33. message: "加油",
    34. arr: ["第一", "第二", "第三"],
    35. vegtables: [
    36. { name: "西红柿" },
    37. { name: "西红柿炒鸡蛋" }
    38. ]
    39. },
    40. methods: {
    41. add: function () {
    42. this.vegtables.push({ name: "蛋炒饭" });
    43. },
    44. remove: function () {
    45. this.vegtables.shift();
    46. },
    47. doIt: function (p1, p2) {
    48. // alert('做IT');
    49. alert(p1);
    50. alert(p2);
    51. },
    52. sayHi: function () {
    53. alert("你好");
    54. },
    55. getMessage: function () {
    56. alert(this.message);
    57. },
    58. setM: function () {
    59. this.message = "哈哈哈"
    60. }
    61. }
    62. })
    63. script>
    64. body>
    65. html>
  • 相关阅读:
    算法练习-LeetCode Hot 100 543. 二叉树的直径
    binder通信实现
    游戏 小代码
    [Ynoi2006]rsrams
    嵌入式Linux应用开发-面向对象-分层-分离及总线驱动模型
    量化:基于支持向量机的择时策略
    CCF中国开源大会,中电金信与行业共探AI技术在金融行业的应用和前景
    黑客(网络安全)技术自学30天
    Docker安装Mysql
    自增还是UUID,数据库主键的类型该如何选择?
  • 原文地址:https://blog.csdn.net/qq_45764950/article/details/127570546