前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Vue 入门教程

Vue 入门教程

原创
作者头像
ruochen
发布于 2022-03-07 03:26:25
发布于 2022-03-07 03:26:25
1.9K0
举报

vue

  • 核心:MVVM(Model-View-ViewModel),实现数据的双向绑定,把编程的关注点放在数据上

入门

  • 引入 js 文件 ```html <script src="js/vue.js"></script> ```
  • 在 JS 代码区域,创建 Vue 核心对象,进行数据绑定 ```js new Vue({ el: "#app", data(){ return { username: "" } } }) ```
  • 编写视图 ```html <div id="app"> <input name="username" v-model="username"> {{username}} </div> ```
  • demo ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="app"> <input v-model="username"> <!--插值表达式--> {{username}} </div>
代码语言:txt
复制
        <script src="js/vue.js"></script>
代码语言:txt
复制
        <script>
代码语言:txt
复制
            // 1. 创建 vue 核心对象
代码语言:txt
复制
            new Vue({
代码语言:txt
复制
                el: "#app",
代码语言:txt
复制
                data() {
代码语言:txt
复制
                    return {
代码语言:txt
复制
                        username: ""
代码语言:txt
复制
                    }
代码语言:txt
复制
                }
代码语言:txt
复制
                /* data: function (){
代码语言:txt
复制
                    return {
代码语言:txt
复制
                        username: ""
代码语言:txt
复制
                    }
代码语言:txt
复制
                }*/
代码语言:txt
复制
            });
代码语言:txt
复制
        </script>
代码语言:txt
复制
    </body>
代码语言:txt
复制
</html>
代码语言:txt
复制
```

常用指令

  • v-bind:为 HTML 标签绑定属性值,如设置 href,css 样式等 ```html <a v-bind:href="url">xxx</a> ``` ```html <!-- v-bind 可以省略 --> <a :href="url">xxx</a> ```
  • v-model:在表单元素上创建双向数据绑定 ```html <input name="username" v-model="username"> ```
  • v-on:为 HTML 标签绑定事件 - html ```html <input type="button" value="button" v-on:click="show()"> <input type="button" value="button" @click="show()"> ``` - vue ```js new Vue({ el: "#app", methods: { show() { alert("被点击"); } } }) ```
  • v-if、v-else、v-else-if:条件性的渲染某元素,判定为true时渲染,否则不渲染 ```html <div v-if="count == 1">div1</div> <div v-else-if="count == 2">div2</div> <div v-else="count == 3">div3</div> <div v-show="count == 1">div v-show</div> ```
  • v-show:根据条件展示某元素,区别在于切换的是 display 属性的值
  • v-for:列表渲染,遍历容器的元素或者对象的属性 - v-for```html <div v-for="addr in addrs"> {{addr}}<br> </div> ``` - 加索引 ```html <div v-for="(addr,i) in addrs"> <!-- i表示索引,从0开始 --> {{i+1}}:{{addr}}<br> </div> ```生命周期| 状态 | 阶段周期 | | - | - | | beforeCreate | 创建前 | | created | 创建后 | | beforeMount | 载入前 | | mounted | 挂载完成 | | beforeUpdate | 更新前 | | updated | 更新后 | | beforeDestory | 销毁前 | | destroyed | 销毁后 |
  • mounted:挂载完成,Vue 初始化成功,HTML 页面渲染成功 - 发送异步请求,加载数据 - eg: ```js new Vue({ el: "#app", mounted(){ alert("vue 挂载完毕,发送异步请求 "); } }) ```

业务 - 使用 Vue 简化查询

  • brand.java 添加 ```java // 逻辑视图 public String getStatusStr() { if (this.status == null) { return null; } if (this.status == 1) { return "启用"; } return "禁用"; } ```
  • brand-vue.html ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="app"> <a href="addBrand.html"><input type="button" value="新增"></a><br> <hr> <table id="brandTable" border="1" cellspacing="0" width="100%"> <tr> <th>序号</th> <th>品牌名称</th> <th>企业名称</th> <th>排序</th> <th>品牌介绍</th> <th>状态</th> <th>操作</th> </tr>
代码语言:txt
复制
                <!--
代码语言:txt
复制
                    使用 v-for 遍历 tr
代码语言:txt
复制
                -->
代码语言:txt
复制
                <tr v-for="(brand,i) in brands" align="center">
代码语言:txt
复制
                    <td>{{i + 1}}}</td>
代码语言:txt
复制
                    <td>{{brand.brandName}}</td>
代码语言:txt
复制
                    <td>{{brand.companyName}}</td>
代码语言:txt
复制
                    <td>{{brand.ordered}}</td>
代码语言:txt
复制
                    <td>{{brand.description}}</td>
代码语言:txt
复制
                    <td>{{brand.statusStr}}</td>
代码语言:txt
复制
                    <td><a href="#">修改</a> <a href="#">删除</a></td>
代码语言:txt
复制
                </tr>
代码语言:txt
复制
            </table>
代码语言:txt
复制
        </div>
代码语言:txt
复制
        <script src="js/axios-0.18.0.js"></script>
代码语言:txt
复制
        <script src="js/vue.js"></script>
代码语言:txt
复制
        <script>
代码语言:txt
复制
            new Vue({
代码语言:txt
复制
                el: "#app",
代码语言:txt
复制
                data() {
代码语言:txt
复制
                    return {
代码语言:txt
复制
                        brands: []
代码语言:txt
复制
                    }
代码语言:txt
复制
                },
代码语言:txt
复制
                mounted() {
代码语言:txt
复制
                    // 页面加载完成后,发送异步请求,查询数据
代码语言:txt
复制
                    var _this = this;  // _this 作用域为 vue
代码语言:txt
复制
                    axios({
代码语言:txt
复制
                        method: "get",
代码语言:txt
复制
                        url: "http://localhost:8080/brand-demo/ajaxSelectAllServlet"
代码语言:txt
复制
                    }).then(function (resp) {
代码语言:txt
复制
                        // 这里 this 作用域为 window
代码语言:txt
复制
                        _this.brands = resp.data;
代码语言:txt
复制
                    })
代码语言:txt
复制
                }
代码语言:txt
复制
            })
代码语言:txt
复制
        </script>
代码语言:txt
复制
    </body>
代码语言:txt
复制
</html>
代码语言:txt
复制
```
  • 测试
    业务 - vue 实现新增

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
K8s源码分析(4)-Resource Model
在上一篇文章中我们主要介绍了 kubernetes 世界中的各种 resource 的 version,其中包括了资源的内部 internal version 和外部非 internal version,以及引入 internal version 来方便各种 resource 持续渐进演化的设计初衷。另外也从源码的角度分析了其中各个资源 group 的对外 version 和 internal version 都定义在哪些源文件之中,在这里我们主要介绍 kubernetes 中各种 resource 的基本定义 model。
TA码字
2021/10/08
5740
深入 kubernetes API 的源码实现
很多同学应该像我一样,第一次打开 Github 上面 kubernetes 项目源码的时候就被各种仓库搞晕了,kuberentes 组织下有很多个仓库,包括 kubernetes、client-go、api、apimachinery 等,该从哪儿仓库看起?kubernetes 仓库应该是 kubernetes 项目的核心仓库,它包含 kubernetes 控制平面核心组件的源码;client-go 从名字也不难看出是操作 kubernetes API 的 go 语言客户端;api 与 apimachinery 应该是与 kubernetes API 相关的仓库,但它们俩为啥要分成两个不同的仓库?这些代码仓库之间如何交互?apimachinery 仓库中还有 api、apis 两个包,里面定义了各种复杂的接口与实现,清楚这些复杂接口对于扩展 kubernetes API 大有裨益。所以,这篇文章就重点关注 api 与 apimachinery 这两个仓库。
米开朗基杨
2021/04/02
1.2K0
Operator示例:通过Operator+CRD实现部署自动化
在上一篇通过Operator自动暴露集群内部服务中,遗留了一个问题:开发人员or业务上游是需要关注k8s内建资源,例如deployment如何定义,这和K8S自动化的目标背道而驰。 本篇文章将采用CRD(CustomResourceDefinition)来屏蔽底层K8S资源,让开发人员只需要按照我们制定的规则来定义CR即可。至于创建deployment,service,ingress等操作就可以交给Operator来完成,从而实现部署自动化。 而自动化就可以对接业务系统,使其实现业务价值。例如根据授权信息,创建租户购买的产品服务,当授权到期时,自动删除对应资源。
Yuyy
2024/01/22
7630
Operator示例:通过Operator+CRD实现部署自动化
图解K8s源码 - k8s核心数据结构
在上一章中阿巩和大家分享了k8s组件之一kube-apiserver,在我自己阅读代码时发现k8s整体结构复杂,而且由于参与的开发者众多代码结构不免有些混乱,我往往容易陷入到某个细节而无法从整体视角梳理流程。在查阅官网文档及相关书籍后,我决定换个思路,先理解k8s核心数据结构设计,这样能够在阅读源码时做到事半功倍。好的,日拱一卒,我们开始吧!
才浅Coding攻略
2022/12/12
1K0
图解K8s源码 - k8s核心数据结构
Kubernetes对象深入学习之二:细说schema.ObjectKind
程序员欣宸
2023/07/10
3390
Kubernetes对象深入学习之二:细说schema.ObjectKind
Controller Runtime 的四种使用姿势
随着云原生生态的不断发展,目前大多数基于 Kubernetes 的云原生技术,几乎都采用了 CRD + Controller 的模式。即使没有自定义 CRD,也会有需要 Controller 来检测自己感兴趣的资源,在其状态发生变更时,做一些业务所需工作。
CS实验室
2022/04/27
3K0
Controller Runtime 的四种使用姿势
Kubernetes对象深入学习之三:对象属性
程序员欣宸
2023/07/24
3010
Kubernetes对象深入学习之三:对象属性
kubebuilder实战之五:operator编码
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 系列文章链接 kubebuilder实战之一:准备工作 kubebuilder实战之二:初次体验kubebuilder kubebuilder实战之三:基础知识速览 kubebuilder实战之四:operator需求说明和设计 kubebuilder实战之五:operator编码 kubebuilder实战之六:构建部署运行 kubebuilder实战之七
程序员欣宸
2022/05/06
5310
kubebuilder实战之五:operator编码
kubebuilder实战之四:operator需求说明和设计
Spec是用来保存用户的期望值的,也就是小欣手里的三个参数(docker镜像、单个pod的QPS、总QPS),再加上端口号:
程序员欣宸
2022/05/06
4850
kubebuilder实战之四:operator需求说明和设计
使用code-generator创建crd controller
在 pkg/apis/{GROUP}/{VERSION}/types.go中使用,使用 // +genclient标记对应类型生成的客户端, 如果与该类型相关联的资源不是命名空间范围的(例如PersistentVolume), 则还需要附加 // + genclient:nonNamespaced标记,
有点技术
2020/07/13
3.5K0
k8s自定义controller三部曲之二:自动生成代码
本文是《k8s自定义controller三部曲》的第二篇,上一篇我们在k8s环境注册了API对象Student,此时如果创建Student对象就会在etcd保存该对象信息;
程序员欣宸
2019/05/29
1.3K0
k8s自定义controller三部曲之二:自动生成代码
mac 上学习k8s系列(20)CRD (part II)
Kubernetes目前常使用CRD+Controller的方式扩展API,官方提供了CRD代码的自动生成器code-generator。
golangLeetcode
2022/08/02
7500
mac 上学习k8s系列(22)rbac 源码学习(part II)
kubernetes中角色分为Role和ClusterRole,Role是namespace级别的,ClusterRole是集群级别的。回想下mac 上学习k8s系列(17)rbac 源码学习(part I)中的类图:
golangLeetcode
2022/08/02
3350
mac 上学习k8s系列(22)rbac 源码学习(part II)
快速上手 K8S Operator
如果你想要对 K8S 做二次开发或者说在原有的基础上封装一些功能让开发者更加好用,那么 Operator 的用法你可必须掌握。
LinkinStar
2023/10/18
2.6K1
Operator3-设计一个operator
前置知识Operator-1初识Operator,Operator-2从pod开始简单operator。
对你无可奈何
2022/07/28
8100
【k8s开发必备技能】使用client-go包访问Kubernetes CRD
Kubernetes API服务器可通过自定义资源定义轻松扩展。但是,用client-go库访问这些资源有点麻烦,官方也没有完整的文档。如kubebuilder operator-framework都能很方便的帮助我们去创建实现一个controller,但是封装的过于好导致我们并不清楚内部是怎么调用client-go的,很多场景我们是需要自己去调用接口操作CRD的而不是在controller中去访问CRD。
sealyun
2019/09/18
6.7K0
【k8s开发必备技能】使用client-go包访问Kubernetes CRD
利用 CRD 实现一个 mini-k8s-proxy
实现一个可以通过配置 host 拦截到匹配的请求域名,将流量代理转发到具体的 service 中(通过配置 serviceName,namespace,port,scheme)的极简网络代理工具。其中,配置通过 CRD 创建,代理程序可以通过控制器监听配置变化,动态更新,无需重启。(PS:其实就是简单模拟了 Traefik IngressRoute 的实现)
gopher云原生
2021/10/18
6180
kubernetes-api-machinery
http server 或者 rpc server 要解决的一个问题是:如何解析用户的请求数据,并把他反序列化为语言中的一个具体的类型。反序列化的程序需要知道具体的类型(这在收到请求的时候就已经知道一些信息了,比如 用户访问的是 EchoService,那么请求肯定是 EchoRequest,不管是 EchoRequestV1,还是 EchoRequestV2), 同时反序列化程序即 decode 程序,还需要知道 他对应的语言里面的具体结构的信息,以便新建这个结构,填充数据,提交给上层处理。以一个 EchoService 为例,decode 程序需要从用户请求(如 post http://echo ) 文本或者二进制数据中创建出 EchoRequestV1,提供给上层处理,同时这个 decode 函数需要足够通用,他返回的是可能是一个 Message Interface, 里面是 EchoRequestV1,decode 相关的细节要么通过代码生成的技术提供给 decoder,要么在 二进制或者文本请求数据(或者 header等元数据)中携带这部分信息。
王磊-字节跳动
2019/10/12
4K0
Kubernetes CRD 自定义控制器
上文我们学习了如何使用 code-generator 来进行代码自动生成,通过代码自动生成可以帮我们自动生成 CRD 资源对象客户端访问的 ClientSet、Informer、Lister 等工具包,接下来我们来了解下如何编写一个自定义的控制器。
我是阳明
2020/10/26
2.3K0
Kubernetes CRD 自定义控制器
K8s源码分析(3)-Resource Version
在上一篇文章中我们主要介绍了 kubernetes 中的 resource meta,以及相关的定义,在这里我们主要介绍 kubernetes resource 的 version。众所周知,在 kubernetes 中所有的 resource 都是基于 group 分组的,例如 apps group 中定义了我们熟悉并常用的 deployment, statefullset, daemonset 等 resource,rbac group 中定义了我们经常用到的 role, role binding, clusterrole, clusterrolebinding 等等 resource。对于不同的 group 中的 resource 又有不同的 version,例如 apps group 中又分为 v1, v1beta1, v1beta2 等不同版本。所以在 kubernetes 中去定位一种 resource 我们就会需要 group (例如 apps), version (例如 v1),kind (例如 deployment),也就是我们常常说的 GVK,如下图例。
TA码字
2021/09/14
1.1K0
K8s源码分析(3)-Resource Version
相关推荐
K8s源码分析(4)-Resource Model
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档