当前位置:首页 » 编程语言 » vuesql语法
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

vuesql语法

发布时间: 2023-04-08 04:54:07

1. vue传递表单到后端后端使用sql生成数据库

是。亩拆VUE是iOS和ANDROID平台上的一款Vlog社区与编辑工具,vue传递表单到后端迅旁枣后端使用sql生成数据库表,采用SQL语句进行创启拿建数据库和表,另一种是利用数据库的可视化工具进行创建数据库。

2. vue下一步点击语法

1.Mustache(双大括号):

2.v-once:该指令后面不需要跟任何表达式(v-for后面接表达式),该指令表示元素和组件只渲染一次,不会随着数据的改变而改变。

3.v-html:v-html会将数据当html标签解析后输出。

4.v-text:<h2 v-text="message"></h2>等效于<h2>{{message}}</h2>,但相比于Mustache,它不够灵活。

5.v-pre:如<h3 v-pre>{{message}}</h3>,标签显示结果就是它标签本身的内容,即{{message}}。

6.v-cloak:解决屏幕闪动的好方法运运唯。

7.v-bind:基本属性绑定和动态绑定(对象或数组),将对应的图片或地址等数据放入data中,使用v-bind将数据引用到对应的标签中,如<img v-bind:src="imgUrl" />,其中data数据如下:

v-bind语法糖(简写方式):<img v-bind:src="imgUrl" />可写为<img :src="imgUrl" />。

8.计算属性:其本质就是属性,包含setter和getter,下面是两种操作实例:

<body>标签的内容:

对应vue代码:

一般为只读属性,所以可以省略set,写成如下形式:

9.v-on(缩写:@):绑定事件监听器。一些处理事件的悄游修饰符(可混合使用):

(1).stop阻止冒泡事件的发生

(2).prevent阻止默认事件的发生,如不用.prevent,下面标签的submit指令会调用方法后直接提交服务器 ,即控制台显示的数据会闪过

(3).{keycode|keyAlias}特定键盘键触发回调

(4).once只触发一次回调

10.v-show:判断属性。

与v-if区别:v-if在条件为false时,包含v-if指令的元素不会出现在dom中;v-show在条件为false时,只是给元素添加一个行内样式:display:none,元素仍然在dom里面;

注意:当需要在旁培显示与隐藏之间切换频率较高的时候,应该使用v-show(性能更高),当次数较少时通常使用v-if。

11.v-for:循环遍历操作。语法:

(1)遍历数组:v-for="(m,index) in movies" //m是新定义的变量名称,index是对应数组的下标,movies是已有的数组名。Index可省略。

(2)遍历对象:<li v-for=”(value,key) in moive”>{{item}}</li> //如果只获取一个值,那么取得的值是value,key可以省略。

12.v-model:实现双向绑定(等同于v-on和v-bind一起使用,实现实时显示)。

双向绑定的使用案例:

<body>
<div id="app">

<!-- 基础案例 -->

<!-- <input type="text" v-model="message"/>{{message}} -->
<!-- 当界面产生一个事件,浏览器会生成一个event对象,内部就包含当前输入的值 -->
<input type="text" :value="message" @input="change" /><br />
<h2>文本框输入内容:{{message}}</h2>
<br />

<!-- 单选框 -->

<span>
<label for="male">
<input type="radio" id="male" value="男" v-model="sex" />男
</label>
<label for="female">
<input type="radio" id="female" value="女" v-model="sex" />女
</label>
<h2>你选择的性别是:{{sex}}</h2>
</span>

<!-- 单击选择 -->

<label for="agree">
<input type="checkbox" id="agree" v-model="info" /><span title="点击同意进入下一步">同意协议 </span>
<button :disabled="!info" @click="notice()">next</button>
<br />
<h2 v-if="info==true">你已经同意相关协议</h2>

</label>
<br />

<!-- 复选框 -->

<label>
<input type="checkbox" value="羽毛球" v-model="hobbies" />羽毛球
<input type="checkbox" value="篮球" v-model="hobbies" />篮球
<input type="checkbox" value="足球" v-model="hobbies" />足球
<input type="checkbox" value="乒乓球" v-model="hobbies" />乒乓球
<h2>你的爱好是:{{hobbies}}</h2>
</label>
<!-- v-model:select 分为复选框和单选框 -->

<!-- 单选框 -->

<select name="abc" v-model="fruit">
<option value="西瓜">西瓜</option>
<option value="橘子">橘子</option>
<option value="香蕉">香蕉</option>
<option value="哈密瓜">哈密瓜</option>
</select>
<h2>你选择的水果是:{{fruit}}</h2>

<!-- 多选框 -->

<select multiple="multiple" name="xyZ" v-model="stars" size="5">
<option disabled="disabled">ctrl+单击可复选</option>
<option value="刘德华">刘德华</option>
<option value="梁朝伟">梁朝伟</option>
<option value="黎明">黎明</option>
<option value="库里">库里</option>
</select>
<h2>你选择的明星是:{{stars}}</h2>

<!-- 值绑定 (动态绑定v-model)-->
<label v-for="item in orginHobbies">
<input type="checkbox" :value="item" />{{item}}
</label>

<!-- 修饰符 -->

<!-- 1.修饰符:lazy 敲回车时进行绑定-->
<div>
<input type="text" v-model.lazy="message" />
<h2>{{message}}</h2>
</div>
<!-- 2.修饰符:number转换数据类型 -->
<div>
<input type="number" v-model.lazy.number="numberBind" />
<h2>{{numberBind}}-{{typeof numberBind}}</h2>
</div>
<!-- 3.修饰符:trim除左右两边空格 -->
<div>
<input type="text" v-model.lazy="name" />
<h2>你输入的名字是:{{name}}</h2>
</div>
</div>
<script src="../js/v2.6.10/vue.js"></script>
<script>
let app = new Vue({
el: '#app',
data: {
message: 'hello!!',
sex: '男',
info: false,
orginHobbies: ['橄榄球', '高尔夫球', '乒乓球'],
hobbies: [],
fruit: '橘子',
stars: [],
numberBind: '',
name: ''
},
methods: {
change(event) {
this.message = event.target.value;
},
notice() {
alert('感谢你同意协议');
}
}
})
</script>
</body>
登录后复制

vue.js
javascript
前端
德国品牌的空气净化器
精选推荐
广告

3. Vue:基础语法、创建组件、组件间传值、实例生命周期

当我们看到vue指令后面跟着一个值得时候,这里的值就不再是一个字符串了,它指的是一定是一个JS的表达式

1、v-for:可以理解为for in,遍历数组返回给item,数组有多少内容就有多少个item,并自动生成html标签

2、v-on:绑定事件,语法=>v-on:事件类型 = "函数(调用)",调用的函清枝镇数定义在methods中,vue会自动到里面寻找对应的函数去执行

3、v-model:数据的双向绑定,指定的数据需要在data里进行定义。当data里的该数据改变时,绑该数据的地方显示在页面的内容也会变化;当绑定的地方数据改变,data里的数据也会改变。其中一个改变另一个也会跟着改变。【在methods里定义的函数中,使用 this.数据 就可以访问到页面中该数据的内容答粗】

4、v-bind:把数据传到子组件:v-bind:变量名=“接收值”  然后在子组件里的props中接收变量值

5、v-text=“name”;表示让这个标签的innerText变成data数据里name的内容,不会复制HTML结构,单纯转成文字,效果和插值表达式一样

6、v-html=“name”;让这个标签的innerHTML变成data数据里name的内容,会把HTML结构也复制上

创建全局组件的方法 Vue.component(“todo-item”, {}) =》 "todo-item"为标签名

var 组件名(=标签名) = {}  并且需要在实例中的components中注册组件才能使用

v-bind:index="index" 可以简写 :index="index"

v-on:click="hdd" 可以简写 @click="hdd"

给子组件绑定多个数据时:

<todo-item :content="item" :index="index" v-for="(item, index) in list" @delete="hdd">

</todo-item>

子组件里的props使用数组的形式接收数据 ,子组件事件处理this.$emit("delete",this.index),之后在向外触发父组件的事件并传入index参数,再使用splice方法实现点击列表的某一项时该项被删除。

生命周期函数就是vue实搭逗例在某一个时间点会自动执行的函数。

生命周期函数不放在methods里面,而是直接放在Vue实例里面

4. vue模板,钩子函数

vue脚手架:

在vue脚手架中有一个

template 模板:

在模板里面只有一个子类,子类里面可以有其他的类

script  脚本

style 样式

vue的语法:

当使用{{}}的时候,里面只可以传入文本,如果传入标签也会被认为文本;

v-html: 可以传入标签,

设置属性的时候,使用v-bind:id 可以简写为  :id = 'id'

在html中的变量都需要在data里面进行定义

在{{}}里面可以使用表达式

v-if 与 v-else: 如果if条件成立的话,就郑袜昌会显示if里面的内容,如果没有成立的话,就会显示else里面的内容,

v-show  条件成立就显示内容,条件不成立,不会显示内容。他会修改display属性

vue中的钩子函数:

一个指令定义对象可以提供如下几个钩子函数 (均为可选):

bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。

inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。

update:所在组件的 VNode 更新时调用, 但是可能发生在其子 VNode 更新之前 。指令的值可能发生了改变,也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新

componentUpdated:指令所在组件的 VNode 及其子 VNode 全部更新后调用。

unbind:只调用一次,指令与元素解绑时调用。

钩子函数参数

指令钩子函数会被传入以下参数:

el:指令所绑定的元素,可以用来直接操作 DOM 。

binding:一个对象,包含以下属性:

name:指令名,不包括 v- 前缀。

value:指令的绑定值,例如:v-my-directive="1 + 1" 中,绑定值为 2。

oldValue:指令绑定的前一个值,仅在 update 和 componentUpdated 钩子中可用。无论值是否改变都可用。

expression:字符串形式的指令表达式。例如 v-my-directive="1 + 1" 中,表达式为 "1 + 1"。

arg:传给指令的参数,可选。例如 v-my-directive:foo 中,参数为 "foo"。

modifiers:一个包含修饰符的对象。例如:喊扒v-my-directive.foo.bar 中,修饰符对象为 { foo: true, bar: true }。

vnode:Vue 编译生成的虚拟节点。移步 VNode API 来了解更多详情。

oldVnode:上一个虚拟节点,仅在 update 和 componentUpdated 钩子中可用。

除了 好衡el 之外,其它参数都应该是只读的,切勿进行修改。如果需要在钩子之间共享数据,建议通过元素的 dataset 来进行。

使用vue计算属性:

链接:https://www.jianshu.com/p/8191a5b8dce6

来源:

5. Vue3基础-模板语法

如果我们希望把数据显示到模板(template)中,使用最多的语法是 “Mustache”语法 (双大括号) 的文本插值。

并且我们前端提到过,data返回的对象是有添加到Vue的响应式系统 中,当data中的数据发生改变时,对应的内容也会发生更新。

当然,Mustache中不仅仅可以是data中的属性,也可以是一个JavaScript的表达式:

下面这种写法是语句不是表达式,所以是错误的:

v-once用于指定元素或者组件只渲染一次,当数据发生变化时,元素或者组件以及其所有的子元素将视为静态内容并且跳过,该指令可以用于性能优化。

如果添加到父节点,那么所有的子节点也是只会渲染一次:

用于更新元素的 textContent,等价于"Mustache"语法,而且"Mustache"语法更灵活。

默认情况下,如果我们展示的内容本身是 html 的,那么vue并不会对段颂凳其进行特殊的解析。如果我们希望这个内容被Vue可以解析出来,那么可以使用 v-html 来展示。

效果如下:

v-pre用于跳过元素和它的子元素的编译过程,显示原始的Mustache标签。
跳过不需要编译的节点,加快编译的速度。

效果如下:

这个指令保持在元素上直到关联组件实例结束编译。

v-cloak 和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到组件实例准备完毕,主要用于解决闪动问题,现在Vue3一般不会出现这个问题了。

<div> 不会显示,直到编译结束。

前面讲的一系列指令,主要是将值插入到模板内容中。但是,除了内容需要动态来决定握旅外,某些属性我们也希望动态来绑定。比如动态绑定a元素的href属性,动态绑定img元素的src属性。

绑定属性我们使用 v-bind: ,缩写 : ,用于动态地绑定一个或多个 attribute,或一个组件 prop 到表达式。

v-bind用于绑定一个或多个属性值,或者向另一个组件传递props值(这个学到组件时再介绍),在开发樱帆中,有哪些属性需要动态进行绑定呢?还是有很多的,比如图片的链接src、网站的链接href、动态绑定一些类、样式等等。

v-bind有一个对应的语法糖,也就是简写方式,在开发中,我们通常会使用语法糖的形式,因为更简洁。

注意 :Vue2 template模板中只能有一个根元素,Vue3 template模板中允许有多个根元素。

在开发中,有时候我们的元素class也是动态的,比如:当数据为某个状态时,字体显示红色,当数据另一个状态时,字体显示黑色。

绑定class有两种方式:对象语法,数组语法。

① 对象语法:我们可以传给 :class (v-bind:class 的简写) 一个对象,以动态地切换 class。

② 数组语法:我们可以把一个数组传给 :class,以应用一个 class 列表;

我们可以利用v-bind:style来绑定一些CSS内联样式,这是因为某些样式我们需要根据数据动态来决定,比如某段文字的颜色,大小等等。

CSS属性名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用引号括起来) 来命名。

绑定style有两种方式:对象语法,数组语法。

① 对象语法:

② 数组语法: :style 的数组语法可以将多个样式对象应用到同一个元素上

在某些情况下,我们属性的名称可能也不是固定的。
前面我们无论绑定src、href、class、style,属性名称都是固定的,如果属性名称不是固定的,我们可以使用 :[属性名]=“值” 的格式来定义,这种绑定的方式,我们称之为动态绑定属性。

如果我们希望将一个对象的所有属性,绑定到元素上的所有属性,应该怎么做呢?非常简单,我们可以直接使用 v-bind 绑定一个对象。

如下:info对象会被拆解成div的各个属性。

前面我们绑定了元素的内容和属性,在前端开发中另外一个非常重要的特性就是交互。
在前端开发中,我们需要经常和用户进行各种各样的交互,这个时候,我们就必须监听用户发生的事件,比如点击、拖拽、键盘事件等等。

在Vue中如何监听事件呢?使用v-on指令。接下来我们来看一下v-on的用法:

我们可以使用v-on来监听一下点击的事件:

v-on:click可以写成@click,是它的语法糖写法:

当然,我们也可以绑定其他的事件:

如果我们希望一个元素绑定多个事件,这个时候可以传入一个对象:

当通过methods中定义方法,以供@click调用时,需要注意参数问题:

情况一:如果该方法不需要额外参数,那么方法后的()可以不添加,并且方法的实现不用参数,直接就可以打印event。
情况二:如果需要同时传入某个参数和event时,可以通过$event传入事件,并且方法的实现必须按顺序写明参数。

@keyup.enter 代表enter键弹起的时候会调用onEnter方法,我们一般在方法里面获取输入的值:

在某些情况下,我们需要根据当前的条件决定某些元素或组件是否渲染,这个时候我们就需要进行条件判断了。

Vue提供了下面的指令来进行条件判断:

下面我们来对它们进行学习。

v-if、v-else、v-else-if 用于根据条件来渲染某一块的内容,这些内容只有在条件为true时,才会被渲染出来,这三个指令与JavaScript的条件语句 if、else、else if 类似。

v-if 的渲染原理:v-if是惰性的,当条件为false时,其判断的内容完全不会被渲染或者会被销毁掉,当条件为true时,才会真正渲染条件块中的内容。

因为v-if是一个指令,所以必须将其添加到一个元素上,但是如果我们希望切换的是多个元素呢?
如果此时我们使用div包裹,div会被渲染到界面上来,但是我们并不希望div被渲染,这个时候,我们可以选择使用template,template元素可以当做不可见的包裹元素,并且 v-if 可以添加到 template 上,但是最终template不会被渲染出来,类似于小程序中的block。

v-show和v-if的用法看起来是一致的,也是根据一个条件决定是否显示元素或者组件。

首先,在用法上的区别:

其次,本质的区别:

开发中如何进行选择呢?

在真实开发中,我们往往会从服务器拿到一组数据,并且需要对其进行渲染。这个时候我们可以使用v-for来完成,v-for类似于JavaScript的for循环,可以用于遍历一组数据。

v-for的基本格式是 "item in 数组" ,数组通常是来自data或者prop,也可以是其他方式,item是我们给每项元素起的一个别名,这个别名可以自定来定义。

我们知道,在遍历一个数组的时候会经常需要拿到数组的索引,如果我们需要索引,可以使用格式 "(item, index) in 数组" ,注意顺序,数组元素项item在前面,索引项index在后面。

类似于v-if,你可以使用 template 元素来循环渲染一段包含多个元素的内容。
我们使用template来对多个元素进行包裹,而不是使用div来完成,因为div会被渲染,template不会被渲染。而且如果有ul,ul里面不推荐放div,只推荐放li。

Vue 将被侦听的数组的变更方法进行了包裹,所以它们也将会触发视图更新,这些被包裹过的方法包括:

上面的方法会直接修改原来的数组,所以视图会跟着更新。但是某些方法不会替换原来的数组,而是会生成新的数组,比如 filter()、concat() 和 slice(),这时候我们可以通过重新赋值的方式触发视图更新,如下:

在使用v-for进行列表渲染时,我们通常会给元素或者组件绑定一个key属性。

这个key属性有什么作用呢?
我们先来看一下官方的解释:key属性主要用在Vue的虚拟DOM算法,在新旧nodes对比时辨识VNodes。如果不使用key,Vue会使用一种最大限度减少动态元素并且尽可能的尝试就地修改/复用相同类型元素的算法,而使用key时,它会基于key的变化重新排列元素顺序,并且会移除/销毁key不存在的元素。

官方的解释对于初学者来说并不好理解,比如下面的问题:
什么是新旧nodes,什么是VNode?
没有key的时候,如何尝试修改和复用的?
有key的时候,如何基于key重新排列的?

我们先来解释一下VNode的概念:
VNode的全称是Virtual Node,也就是虚拟节点。事实上,无论是组件还是元素,它们最终在Vue中表示出来的都是一个个VNode。VNode的本质是一个JavaScript的对象。

如果我们不只是一个简单的div,而是有一大堆的元素,那么它们应该会形成一个VNode Tree。

我们先来看一个案例:这个案例是当我们点击按钮时会在li中间插入一个f。

我们可以确定的是,这次更新对于ul和button是不需要进行更新,需要更新的是我们li的列表。在Vue中,对于相同父元素的子元素节点并不会重新渲染整个列表,因为对于列表中 a、b、c、d它们都是没有变化的。在操作真实DOM的时候,我们只需要在中间插入一个f的li即可。

那么Vue中对于列表的更新究竟是如何操作的呢?
Vue事实上会对于有key和没有key会调用两个不同的方法,有key,那么就调用 patchKeyedChildren方法,没有key,那么就调用 patchUnkeyedChildren方法。

没有key的diff算法:

我们会发现上面的diff算法效率并不高,c和d来说它们事实上并不需要有任何的改动,但是因为我们的c被f所使用了,所有后续所有的内容都要一次进行改动,并且最后进行新增。

有key的diff算法:

所以我们可以发现,Vue在进行diff算法的时候,会尽量利用我们的key来进行优化操作,在没有key的时候我们的效率是非常低效的,在进行插入或者重置顺序的时候,保持相同的key可以让diff算法更加的高效。

6. 入门:Vue六大常用内置指令

指令(Directives),是vue为开发者提供的 模板语法 ,用于辅助开发者渲染页面的基本结构

所用到的数据定义在实例的 data 中,事件定义在实例的 methods

只能渲染纯文本内容, 会覆盖 标签内部原本的内容

只能渲染纯文本内容, 不会覆盖 标签内部原本的消虚内容

能将带标签的字符串渲染成html内容, 会覆盖 标签内部原本的内容

为元素的属性 动态 绑定属性值

注意: 插值表达式 v-bind 还支持javascript表达式的运算

为元素绑定事件

只要是事件,就能使用的修饰符,以下列举5个常用的

只能在触发键盘事件时,使用的修饰符,以下列举2个常用的

快速获取表单数据(只应用于表单元素,如:input、textarea、select)

只能给v-model使用的修扰伍饰符

控制DOM的显示与隐藏(值为true显示,值为false隐藏),其原理为 动态添加/移除display:none样式 ,一般用于需频繁切换

控制DOM的显示与隐藏(值为true显示,值为false隐藏),其原理为 动态创建/移除元素 ,一般用于默认不展示且展示较少

配合 v-if 指令一起使用,否则将不会被识别

基于一个数组来循环渲染一个列表结构,它有特定的语法结构 v-for="item in items"

注意:在.vue文件中,只要用到 v-for指令 ,一定要绑定一个拿李燃 :key 属性


作者:用户2031777005900
链接:https://juejin.cn/post/7105273755168931877