首页 > 其他分享 >VUE

VUE

时间:2024-08-27 16:04:10浏览次数:14  
标签:el VUE name vue 绑定 Vue data

初识vue

1.1vue特点

  • 采用组件化模式,提高代码复用率、且让代码更好维护
  • 声明式编码,让编码人员无需直接操作DOM,提高开发效率。
  • 使用虚拟DOM+优秀的Diff算法,尽量复用DOM节点。

1.2vue安装教程

vue官网:https://cn.vuejs.org

1.3Hello World

  1. 想让Vue工作,就必须创建一个Vue实例,且要传入一个配置对象。
  2. root容器里的代码依然符合html规范,只不过混入了一i邪恶特殊的Vue语法。
  3. root容器里的代码被称为vue模板。
  4. Vue实例和容器是一一对应的
  5. 真实开发中只有一个Vue实例,并且会配合着组件一起使用
  6. {{xxx}}中的xxx要写js表达式,且xxx可以自动读取到data中的所有属性
  7. 一旦data中的数据发生改变,那么模板中用到改数据的地方也会自动更新
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../vuejs/vue.js"></script>
</head>
<body>
    <!-- 准备一个容器 -->
    <div id="root">
        <h1>Hello World,{{name}}</h1>
    </div>
    <script>
        Vue.config.productionTip = false; // 组织vue在启动时生成生产提示

        // 创建vue实例
        const x = new Vue({
            el:'#root', //el用于指定当前vue实例为哪个容器服务,值通常为css选择器字符串
            data:{
                name:'张三'
            }
        })

    </script>
</body>
</html>

模板语法

插值语法

  1. 用于解析标签体内容
  2. {{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性

指令语法

  1. 用于解析标签(包括:标签属性、标签体内容、绑定事件....)
  2. v-bind:herf="xxx" 或简写 :href="xxx",xxx同样是写js表达式,且可以直接读取到data中的所有属性。
  3. vue中有很多的指令,且形式都是:v-????,此处我们只是拿v-bind举个例子。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../vuejs/vue.js"></script>
</head>
<body>
    <!-- 准备一个容器 -->
    <div id="root">
        <h1>插值语法</h1>
        <h1>Hello World,{{name}}</h1>
        <hr/>
        <h1>指令语法</h1>
        <a v-bind:href="school.url.toUpperCase()">点我进百度</a>
        <a :href="school.url">百度</a>
    </div>
    <script>
        Vue.config.productionTip = false; // 组织vue在启动时生成生产提示

        // 创建vue实例
        const x = new Vue({
            el:'#root', //el用于指定当前vue实例为哪个容器服务,值通常为css选择器字符串
            data:{
                name:'张三',
                school:{
                    url:"https://www.baidu.com"
                },
                
            }
        })

    </script>
</body>
</html>

数据绑定

单项数据绑定

  • 使用v-bind绑定,数据只能从data流向页面

双向数据绑定

  • 使用v-model绑定,数据不仅能从data流向页面,还可以从页面流向data。双向数据绑定一半都应用在表单类元素上(如:input、select等)。v-model:value 可以简写为v-model,因为v-model默认收集的就是value值。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数据绑定</title>
    <script type="text/javascript" src="../vuejs/vue.js"></script>
</head>
<body>
    <div id="root">
        单向数据绑定:<input type="text" v-bind:value="name">
        <!-- v-model只能应用于表单输入类 -->
        双向数据绑定:<input type="text" v-model:value="name">

        <!-- 简写方式 -->
        单向数据绑定:<input type="text" :value="name">
        <!-- v-model只能应用于表单输入类 -->
        双向数据绑定:<input type="text" v-model="name">
    </div>
</body>
<script>
    Vue.config.productionTip = false
    new Vue({
        el:'#root',
        data:{
            name:"张三"
        }
    })
</script>
</html>

el和data的两种写法

  • el的两种写法

    1. new Vue的时候配置el属性。
    2. 先创建Vue实例,随后再通过vm.$mount('#root')指定el的值。
  • data的两种写法

    1. 对象式

    2. 函数式

      目前哪种写法都可以,以后学到组件时,data必须使用函数式,否则会报错。

  • 由于Vue管理的函数,一定不要写箭头函数,一旦写了箭头函数,this就不在是Vue实例了。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>el和data的两种写法</title>
    <script src="../vuejs/vue.js"></script>
</head>
<body>
    <div id="root">
        <h1>hello,{{name}}</h1>
    </div>
</body>
<script>
    Vue.config.productionTip = false;
    // const v = new Vue({
    //     // el:'#root', //第一种写法
    //     data: {
    //         name:"张三"
    //     },
    // })
    // v.$mount('#root') // 第二种写法
    const v = new Vue({
        el:'#root', 
    // data的第一种写法:对象式
    //     data: {
    //         name:"张三"
    //     },
    // data的第二种写法:函数式
        // data: function(){
        //     console.log("@@@",this) // 此处的this是Vue实例对象
        //     return{
        //         name:"张三"
        //     }
        // },
    // data的第二种写法:函数式,简写方式
        data(){
            console.log("@@@",this) // 此处的this是Vue实例对象
            return{
                name:"张三"
            }
        },
    // data的第二种写法:函数式,简写方式,不使用箭头函数
        // data:()=>{
        //     console.log("@@@",this) // 此处的this是Window实例对象,因为箭头函数没有自己的this,所以要向外层找。
        //     return{
        //         name:"张三"
        //     }
        // },
    })
</script>
</html>

标签:el,VUE,name,vue,绑定,Vue,data
From: https://www.cnblogs.com/jianghao000/p/18382914

相关文章

  • vue侧边栏
    在Vue中创建一个侧边栏(Sidebar)是一个常见的需求,特别是在构建管理界面或需要导航菜单的应用时。侧边栏通常用于展示应用的导航链接或菜单项,用户可以通过点击这些链接来访问应用的不同部分。<template> <el-tree:data="data":props="defaultProps"class="node-name"@node-......
  • Vue编程式导航
    编程式导航和上面说的声明式导航的区别在于,声明式导航是先写好便签,然后进行导航。编程式导航通过代码直接进行了导航。通过this.$router.push()这个方法来实现编程式导航,当然也可以实现参数传递,这种编程式导航一般是用于按钮点击之后跳转。<!DOCTYPEhtml><htmllang="en"......
  • Vue3项目启动失败的解决方案
    看了我创建Vue3项目的朋友们,你们是否也会出现以下情况呢,没事,我下面提供解决方案下载|Node.js中文网先把node版本安装到最新在vscode打开终端后输入yarn-s等安装好后输入yarndev启动项目即可项目启动成功了......
  • springboot+vue零食销售商城【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和消费者购物习惯的深刻变革,电子商务已成为推动全球经济增长的重要力量。在快节奏的现代生活中,零食作为日常消费的重要组成部分,其市场需求持续增长且日益多元化。然而,传统零食销售模式受限于地域、时间等因素......
  • Vant4+Vue3 实现年月日时分时间范围控件
    <van-popup v-model:show="showDatePick" position="bottom" :overlay-style="{zIndex:1000}"> <van-picker-group title="时间范围" :tabs="['开始日期','结束日期']" @confirm="on......
  • laravel11+vue编程
    文档视频地址https://www.youtube.com/watch?v=iGnlmxA7oM8&list=PL38wFHH4qYZXCW2rlBLNdHi5cv-v_qlXO视频代码https://github.com/JonVadar/YouTube_videos/tree/main/Webdeveloperpathvideos/laravel_Inertia_VueCSSfile:https://github.com/JonVadar/YouTube_videos......
  • 283:vue+openlayers 4326和3857坐标系下的分辨率区别
    作者:还是大剑师兰特,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,CSDN知名博主,深耕openlayers、leaflet、mapbox、cesium,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。查看本专栏目录-本文是第283个示例文章目录一......
  • Vue 组件通信
    目录基本概念vue2组件通信1.props2.$emit3.provide和inject4.$refs 5.$parent和$children6.$attrs和$listeners​​​​​​​7.v-model8.Bus9.vuex vue3组件通信1.props2.$emit3.provide和inject4.expose和ref5.$parent 6.$attrs 7.v-model8.m......
  • 闲置物品|基于SprinBoot+vue的校园闲置物品交易平台(源码+数据库+文档)
    校园闲置物品交易平台目录基于SprinBoot+vue的校园闲置物品交易平台一、前言二、系统设计三、系统功能设计 5.1系统功能实现5.2管理员模块实现5.3用户模块实现四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:博主介绍:......
  • 计算机毕业设计django+vue共享自习室管理系统【开题+论文+程序】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景:随着教育资源的日益紧张与学习需求的不断增长,共享自习室作为一种新型的学习空间,逐渐受到广大学生的青睐。它不仅为学生提供了一个安静、专......