首页 > 其他分享 >VUE基础

VUE基础

时间:2023-05-18 16:35:52浏览次数:45  
标签:function VUE console log 基础 msg 组件 data

一、基础

vue和jquery一样,是前端的js库

在html文件中使用需导入vue.js:

<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>

{{xx}}来表示取某个变量xx的值

二、vue指令

v-model:双向数据绑定 用来在 input、select、textarea、checkbox、radio 等表单控件元素上创建双向数据绑定,根据表单上的值,自动更新绑定的元素的值。

msg: <input type="text" v-model="msg"><br>
data(){
    return{
        msg:'test',
  }

当msg的值改变时,input输入框中的内容也会发生改变


v-bind :属性绑定 比方class属性,style属性,value属性,href属性等等,只要是属性,就可以用v-bind指令进行绑定

password: <input v-bind:type="input_type" v-model="password" :calss="my_class">
data(){
    return
        input_type: "password",
}

绑定属性type,type的值为input_type,当input_type的值发生改变时,type值发生变化


v-for :循环获取list或者dict中的内容

<h5 v-for="(name,index) in students">{{index}}欢迎{{name}}</h5>
<h5 v-for="(value,key) in students2">{{key}}:{{value}}</h5>
data(){
    return{
        students:["吴康飞", "刘慧杰", "郑佩", "刘佩"],
        students2: {"name": "吴康飞", "age": 38},
    }
},

v-if:只有当指令的表达式返回值为true的时候才会被渲染,为false的时候,元素是不存在于页面中;
而v-show则不论指令表达式的返回值是什么,都会被渲染,并且只是基于css的款式切换,为false时,将display置为none(display:none),元素始终存在于页面中

v-show:v-if在条件切换时,会对标签进行适当的创立和销毁,而v-show则仅在初始化时加载一次,因而v-if的开销相对来说会比v-show大

<h1 style="font-size: 50px" v-if="dmn">美女</h1>
<button @click="show_meinv(1)">展示美女</button>
<h1 style="font-size: 3px" v-show="xmn">小美女</h1>
<button @click="show_meinv(2)">展示小美女</button>
methods: {
    show_meinv(type) {
      if (type == 1) {
          this.dmn = !this.dmn
      } else {
          this.xmn = !this.xmn
      }
  }
}

三、vue使用Element桌面组件库

element网站:https://element.eleme.cn/#/zh-CN

<!--引入element-ui组件库-->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<!-- 引入Element-ui样式 -->
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">

四、vue组件

组件作用:当一部分代码需要频繁重复使用,可以将代码写成组件,提高复用率

4.1定义全局组件

// 定义全局组件
<script>
    Vue.component("guanggao", {
        template: "<div class=\"guanggao\">{{msg}}-{{date}}</div>",
        // props为组件接收的参数,在引用组件的位置传入
        props: ["msg"],
        // data为组件自己定义的参数
        data() {
            return {
                date: "2021-08-21"
            }
        }
    })
</script>

4.1全局组件应用

<div id="app" style="width: 500px">
    <!--    引用全局组件-->
    <guanggao msg="广告内容"></guanggao>
</div>

4.2定义局部组件

// 定义局部组件
<script>
    var guanggao2 = {
        template: "<div class=\"guanggao2\">{{msg}}-{{date}}</div>",
        props: ["msg"],
        data() {
            return {
                date: "2021-08-21"
            }
        },
    }
    app = new Vue({
        el: "#app",
        // 在id为app的div中引用局部组件,需要在这里定义一下
        components:{
            "zp":guanggao2
        },
    })
  </script>

4.2应用局部组件

<div id="app" style="width: 500px">
    <!--    引用局部组件-->
    <zp msg="广告2"></zp>
</div>

五、计算属性和监听属性

computed是计算属性,某个变量是通过其他的操作计算得来的,那么就可以使用computed来计算

如果和计算的这个属性相关的值发生变化,那么computed的值也会动态变化。

<input type="password" v-model="password">
<!--    显示password_upper的值,是将password转为大写展示的-->
<h5>{{ password_upper }}</h5>
new Vue(
        {

            computed: {
                password_upper: function (){
                    // password_upper的值根据password来的,将password转为大写
                    return this.password.toUpperCase()
                }

            },
}

watch是侦听某个属性,如果某个属性发送变化,可以通过它来触发一些操作

在watch里面使用不了data里面的变量,在computed里面是可以的。

<input type="text" v-model="username">
<p style="color: red">{{error_msg}}</p>

new Vue({
// 当username有变化时执行function
            watch: {
                username: function (val){
                    // console.log(val)
                    // this.get_username()
                    if (isNaN(val)!==false){
                        this.error_msg = "username只是数字"
                    }else{
                        this.error_msg = ""
                    }
                }

            },
}

六、vue生命周期钩子

beforeUpdate:组件发生变化之前执行

updated:组件发生变化之后执行

beforeDestroy:组件销毁之前执行

distroy:组件销毁之后执行

<script>
    Vue.component("zizhujian", {
        template: "<div><h1 id='zzj' >我是子组件--{{msg}}</h1></div>",
        props: ["msg"],
        beforeUpdate: function () {
            console.log("beforeUpdate")
            //组件发生变化之前执行
        },
        updated: function () {
            console.log("updated")
            //组件发生变化之后执行
        },
        beforeDestroy: function () {
            //组件销毁之前执行
            console.log("beforeDestroy")
        },
        destroyed: function () {
            //组件销毁之后执行
            console.log("destroyed")
        },
    })
</script>

beforeCreate:组件创建之前执行,这时候data还没有数据

created:组件创建之后执行,methods和data就有了,进入页面调用的接口放在这里

beforeMount:页面挂载之前执行

mounted:页面挂载之后执行,生成图表等功能写在这里

<script>
	var vm = new Vue(
        {
            beforeCreate: function () {
                //vue组件创建之前,这时候data里面还没有数据
                console.log("beforeCreate...", this.username) //这时候没有
                console.log("beforeCreate")
            },
            created: function () {
                //组件创建之后,这时候methods和data就有了
                // 进入页面调用接口写在这里
                console.log("created...", this.username)
                console.log("created")

            },
            beforeMount: function () {
                //页面挂载之前,这时候还没有生成dom结构
                console.log("beforeMount", document.getElementById("zzj"))
                console.log("beforeMount")
            },
            mounted: function () {
                //生成了dom结构
                //生成图表等功能写在这里
                console.log("mounted", document.getElementById("zzj"))
                console.log("mounted")
            },
        }
  </script>

标签:function,VUE,console,log,基础,msg,组件,data
From: https://www.cnblogs.com/zhengp/p/17412337.html

相关文章

  • vue中事件修饰符.prevent.self和.self.prevent有什么区别
    v-on:click.prevent.self:会阻止所有的点击,阻止了自身的默认事件和阻止了子元素事件的向上冒泡。v-on:click.self.prevent:只会阻止对元素自身的点击,阻止了子元素事件的向上冒泡,阻止了子组件冒泡事件的默认事件。在Vue.js中,事件修饰符.prevent用于阻止事件的默认行为,.self用于阻......
  • Python基础语法(四)—列表、元组、字典、集合、字符串
    Python基础语法(一):https://blog.zeruns.tech/index.php/archives/54/Python基础语法(二):https://blog.zeruns.tech/index.php/archives/112/Python基础语法(三):https://blog.zeruns.tech/index.php/archives/150/Python基础语法(四):https://blog.zeruns.tech/index.php/archives/299/列......
  • error Resolve error: @vitejs/plugin-vue requires vue (>=3.2.13) or @vue/compile
    创建Vue3项目时出错error Resolveerror:@vitejs/plugin-vuerequiresvue(>=3.2.13)or@vue/compiler-sfctobepresentinthedependencytree将vue 升级到 [email protected]  版本 执行[email protected] ......
  • Python的基础语法(三)之“语法结构”
    “语法结构”1、成员运算符:定义:就是查看某个个体是不是在某个群体里面1、in(在)2、notin(不在)names_list=['kevin','jack','tank','tony']print('kevin'innames_list)#Trueprint('aa'innames_list)#Falseprint('......
  • Vue框架中,何为渐进式框架?
    我的理解是:vue框架提供了不同层次的特性与功能,在使用过程中丰俭由人,既可以只使用核心特性,又可以使用高级特性及第三方功能。核心:数据驱动(视图的内容随着数据的改变而改变)组件化(可以增加代码的复用性,可维护)无论再怎么灵活,Vue的核心知识在所有这些用例中都是通用的。......
  • 【pandas基础】--数据拆分与合并
    数据集拆分是将一个大型的数据集拆分为多个较小的数据集,可以让数据更加清晰易懂,也方便对单个数据集进行分析和处理。同时,分开的数据集也可以分别应用不同的数据分析方法进行处理,更加高效和专业。数据集合并则是将多个数据集合并成一个大的数据集,可以提供更全面的信息,也可以进行......
  • 数电基础
    数电基础电的两种属性它可以携带能量----电工学:专门研究电能的产生、传送和利用它可以携带信息----电子学:专门研究电信号的变换、传送和处理电子技术的分类现实世界中的信息模拟量----模拟电子技术:专门研究模拟信号的处理。模拟量的特点:连续性。自然接中的温度、......
  • vue 环境问题记录
    1.项目初始化报错 npmERRcommandgit--no-replace-objectsls-remotessh://git@github-com/nhn/raphael-git 这一块的报错是需要本地生成的SSHkeys添加到gitHub里面,可以参照如下链接的博主就弄好了。https://blog.csdn.net/weixin_44405693/article/details/1221752732......
  • vue开发技巧
    很有用的Vue开发技巧 1. 路由参数解耦通常在组件中使用路由参数,大多数人会做以下事情。exportdefault{methods:{getParamsId(){returnthis.$route.params.id}}}在组件中使用$route会导致与其相应路由的高度耦合,通过......
  • MongoDB + SpringBoot 的基础CRUD、聚合查询
    1、数据准备1.1、springboot导包springboot版本:2.7.10点击查看代码<!--mongodb的包--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifact......