Vue_基础功能循环、计算、绑定、事件处理、组件

  1 DOCTYPE html>
  2 <html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-on="http://www.w3.org/1999/xhtml">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Titletitle>
  6     <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js">script>
  7 head>
  8 <style>
  9     .class1{
 10         /*background-color: green;*/
 11         background: red;
 12         color: yellow;
 13     }
 14 style>
 15 <body>
 16     <div id="app">
 17         <p>{{message}}p>
 18         <p v-if="seen">现在你看到我了p>
 19         <p v-show="ok">Hello!p>
 20         <a v-bind:href="url">百度一下a>
 21         <a :href="url">百度一下v-bind缩写a>
 22         <br>
 23         <input v-model="message1">
 24         <br>
 25         <button v-on:click="reverseMessage">反转字符串button>
 26         <button @click="reverseMessage">反转字符串v-on缩写button>
 27         <br>{{message|capitalize}}
 28
 29         <br><h1>v-if条件语句h1>
 30         <div v-if="Math.random()>0.5">
 31             Sorry
 32         div>
 33         <div v-else>
 34             Not Sorry
 35         div>
 36
 37         <div v-if="type == 'A'">Adiv>
 38         <div v-else-if="type == 'B'">Bdiv>
 39         <div v-else-if="type == 'C'">Cdiv>
 40         <div v-else>Not A/B/Cdiv>
 41
 42     div>
 43
 44     <hr>
 45     <div id="vue_det">
 46         <h1>site:{{site}}h1>
 47         <h1>url:{{url}}h1>
 48         <h1>{{details()}}h1>
 49     div>
 50
 51     <hr>
 52     <div id="app1">
 53         <div v-html="message">div>
 54     div>
 55
 56     <hr>
 57     <div id="app2">
 58         <label for="r1">修改颜色label>
 59         <input type="checkbox" v-model="use" id="r1"><br>
 60         <div v-bind:class="{'class1':use}">
 61             v-bind:class改变颜色
 62         div>
 63     div>
 64
 65     <hr>
 66     <div id="app3">
 67         {{5+5}}<br>
 68         {{ok? 'Yes' : 'No'}}<br>
 69         {{message.split('').reverse().join('')}}
 70         <div v-bind:id="'list-'+id">百度一下div>
 71     div>
 72
 73     <hr><h1>v-for循环语句h1>
 74     <div id="app4">
 75         <ol>
 76             <li v-for="site in sites">
 77                 {{site.name}}
 78             li>
 79         ol>
 80         <ul>
 81             <template v-for="site in sites">
 82                 <li>{{site.name}}li>
 83             template>
 84         ul>
 85         <ul>
 86             <li v-for="value,key,index in object">
 87                 {{index}}:{{key}}---{{value}}
 88             li>
 89             <li v-for="n in 10">{{n}}li>
 90         ul>
 91     div>
 92
 93     <hr><h1>computed计算属性h1>
 94     <div id="app5">
 95         <p>原始字符串:{{message}}p>
 96         <p>计算后的反转字符串:{{reversedMessage}}p>
 97     div>
 98
 99     <hr><h1>监听属性h1>
100         <div id="app6">
101             <p style="font-size: 25px;">计数器:{{counter}}p>
102             <button @click="counter++" style="font-size: 25px;">点击计数button><br>
103             千米:<input type="text" v-model="kilometers">
104             米:<input type="text" v-model="meters">
105             <p id="info">p>
106         div>
107
108     <hr><h1>样式绑定h1>
109         <div id="app7">
110             <div v-bind:style="styleObject">字体样式改变div>
111             <div v-bind:style="[styleObject, backStyle]">字体多种样式改变div>
112         div>
113
114     <hr><h1>事件处理器v-onh1>
115         <div id="app8">
116             <button @click="counter+=1">增加1button>
117             <p>这个按钮被点击了{{counter}}次p>
118             <button @click="say('hi')">Say hibutton>
119             <button @click="say('what')">Say whatbutton>
120         div>
121     <hr><h1>表单,用 v-model 指令在表单控件元素上创建双向数据绑定h1>
122
123
124         <div id="app9">
125             <input v-model="message" placeholder="编辑内容显示。。。">
126             <textarea v-model="message1" placeholder="多行文本输入">textarea>
127
128             <p>单个复选框:p>
129             <input type="checkbox" id="checkbox" v-model="checked">
130             <label for="checkbox">{{checked}}label>
131             <p>多个复选框:p>
132             <input type="checkbox" id="taobao1" value="taobao" v-model="checkedNames">
133             <label for="taobao1">taobaolabel>
134             <input type="checkbox" id="google1" value="google" v-model="checkedNames">
135             <label for="google1">googlelabel>
136             <input type="checkbox" id="facebook1" value="facebook" v-model="checkedNames">
137             <label for="facebook1">facebooklabel>
138             <br>
139             <span>选择的值为:{{checkedNames}}span>
140
141             <p>单选框:p>
142             <input type="radio" id="facebook2" value="facebook" v-model="picked">
143             <label for="facebook2">facebooklabel>
144             <br>
145             <input type="radio" id="google2" value="google" v-model="picked">
146             <label for="google2">googlelabel>
147             <br>
148             <span>选择的值为:{{picked}}span>
149
150             <p>下拉列表--select 列表p>
151             <select v-model="selected" name="好像没用上">
152                 <option value="">选择一个网站option>
153                 <option value="www.baidu.com">百度option>
154                 <option value="www.taobao.com">淘宝option>
155             select>
156             <div id="output">选择的网站是:{{selected}}div>
157
158         div>
159
160     <hr><h1>组件Componenth1>
161         <div id="app10">
162             <chunfang>chunfang>
163             <chunfang1>chunfang1>
164             <child message="Hello!">child>
165         div>
166         <div id="app11">
167             <input v-model="parentMsg"><br>
168             <child2 v-bind:message2="parentMsg">child2>
169         div>
170     <hr><h1>组件Component--自定义事件h1>
171         <div id="app12">
172             <div id="counter-event-example">
173                 <p>{{total}}p>
174                 <button-counter v-on:increment="incrementTotal">button-counter>
175                 <button-counter v-on:increment="incrementTotal">button-counter>
176             div>
177         div>
178
179     <hr><h1>自定义指令h1>
180         <div id="app13">
181             <p>页面载入时,input元素自动获取焦点p>
182             <input v-focus>
183         div>
184
185     <script>
186         new Vue({
187             el:'#app',
188             data:{
189                 message:'baidu!',
190                 message1:'百度一下,输入框填入的',
191                 seen:true,
192                 ok:true,
193                 url:'https://www.baidu.com',
194                 type:'C'
195             },
196             methods: {
197                 reverseMessage:function () {
198                     this.message1 = this.message1.split('').reverse().join('')
199                 }
200             },
201             filters:{
202                 capitalize:function (value) {
203                     if(!value) return '';
204                     value = value.toString();
205                     return value.charAt(0).toUpperCase()+value.slice(1)
206                 }
207             }
208         });
209
210         var vm = new Vue({// Vue 构造器
211             el:'#vue_det',//el 参数,它是 DOM 元素中的 id
212             data:{//data 用于定义属性
213                 site:"第一个正式的测试VUE",
214                 url:"www.baidu.com",
215                 alexa:"10000"
216             },
217             methods:{//methods 用于定义的函数,可以通过 return 来返回函数值
218                 details:function () {
219                     return this.site + "-这是一个连接到百度的网址";
220                 }
221             }
222         });
223
224         new Vue({
225             el:'#app1',
226             data:{
227                 message: '

百度一下

' 228 } 229 }); 230 231 new Vue({ 232 el:'#app2', 233 data:{ 234 use:false//判断 use 的值,如果为 true 使用 class1 类的样式,否则不使用该类 235 } 236 }); 237 238 new Vue({ 239 el:'#app3', 240 data:{ 241 ok:true, 242 message:'baidu', 243 id:1 244 } 245 }); 246 247 new Vue({ 248 el:'#app4', 249 data:{ 250 sites:[ 251 {name:'baidu'}, 252 {name:'360'}, 253 {name:'雅虎'}, 254 ], 255 object:{ 256 name:'百度一下', 257 url: 'http://www.baidu.com', 258 slogan:'世界因我而改变!', 259 }, 260 }, 261 }); 262 263 var vm = new Vue({ 264 el:'#app5', 265 data:{message:'反转字符串'}, 266 computed:{ 267 reversedMessage:function () {//声明了一个计算属性 reversedMessage 268 return this.message.split('').reverse().join('')//// this 指向 vm 实例 269 } 270 }, 271 }); 272 273 var vm = new Vue({//实例进行千米与米之间的换算 274 el:'#app6', 275 data:{ 276 counter:1, 277 kilometers:0, 278 meters:0, 279 }, 280 methods:{}, 281 watch:{ 282 kilometers: function (val) { 283 this.kilometers = val; 284 this.meters =this.kilometers *1000; 285 }, 286 meters:function (val) { 287 this.kilometers = val/1000; 288 this.meters = val; 289 }, 290 }, 291 }); 292 vm.$watch('kilometers',function (newValue,oldValue) {//通过 watch 来响应数据的变化 293 document.getElementById("info").innerHTML ="修改前的值为:"+oldValue+",修改后的值为:"+newValue; 294 }); 295 296 new Vue({ 297 el:'#app7', 298 data:{ 299 styleObject:{ 300 color:'green', 301 fontSize:'30px', 302 width:'500px', 303 }, 304 backStyle:{ 305 background:'red', 306 'font-weight':'bold', 307 }, 308 309 }, 310 }); 311 312 new Vue({ 313 el:'#app8', 314 data:{counter: 0}, 315 methods:{//直接绑定到一个方法 316 say:function (message) { 317 alert(message); 318 } 319 }, 320 }); 321 322 new Vue({ 323 el:'#app9', 324 data:{ 325 message:'xian显示在框中', 326 message1:'多行文本显示框中\r\n并换行', 327 checked:false, 328 checkedNames:[], 329 picked:'facebook', 330 selected:'', 331 }, 332 }); 333 334 Vue.component('chunfang',{//// 注册 335 template:'

自定义的全局组件

' 336 }); 337 new Vue({//// 创建根实例 338 el:'#app10', 339 }); 340 341 var Child={template: '

这是自定义的局部组件

'}; 342 new Vue({//// 创建根实例 343 el:'#app10', 344 components:{//// 将只在父模板可用 345 'chunfang1':Child, 346 }, 347 }); 348 349 Vue.component('child',{// 注册 350 props:['message'],// 声明 props 351 template:'{{message}}',// 同样也可以在 vm 实例中像 “this.message” 这样使用 352 }); 353 new Vue({// 创建根实例 354 el:'#app10', 355 }); 356 357 Vue.component('child2',{// 注册 358 props:['message2'],// 声明 props、、动态 Prop 359 template:'{{message2}}',// 同样也可以在 vm 实例中像 “this.message” 这样使用 360 }); 361 new Vue({// 创建根实例 362 el:'#app11', 363 data:{ 364 parentMsg:'父组件的内容' 365 }, 366 }); 367 368 Vue.component('button-counter',{ 369 template:'', 370 data:function () {//// data 选项是一个函数,组件不相互影响 371 return {counter:0} 372 }, 373 methods:{ 374 incrementHandler:function () { 375 this.counter+=1; 376 this.$emit('increment');//使用 $emit(eventName) 触发事件 377 }, 378 }, 379 }); 380 new Vue({ 381 el:'#app12', 382 data:{total:0}, 383 methods:{ 384 incrementTotal:function () { 385 this.total +=1; 386 }, 387 }, 388 }); 389 390 Vue.directive('focus',{// 注册一个全局自定义指令 v-focus 391 inserted:function (el) {// 当绑定元素插入到 DOM 中。 392 el.focus();// 聚焦元素 393 }, 394 }); 395 new Vue({// 创建根实例 396 el:'#app13', 397 }); 398 399 script> 400 401 body> 402 html>

Original: https://www.cnblogs.com/chunfang/p/13503339.html
Author: 白月如初12138
Title: Vue_基础功能循环、计算、绑定、事件处理、组件

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/711657/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 三、DOS命令

    常用的DOS命令 #盘符切换 D: #查看当前目录下的所有文件 dir #切换目录 cd+空格+/d+空格+路径 #返回上一级 cd+空格+.. #清理屏幕 cls #退出终端 e…

    技术杂谈 2023年6月21日
    089
  • 【软考】CMMI的5个等级和22个过程域

    1.相关考点 2.相关考题 1.相关考点 CMMI将能力成熟度分为5个级别:初始级,已管理级,已定义级,量化管理级,优化级。CMMI中的重要概念,过程域 2.相关考题 在CMMI阶…

    技术杂谈 2023年5月31日
    093
  • 基于Vite+React构建在线Excel

    Vite是随着Vue3一起发布的一款新型前端构建工具,能够显著的提升前端开发体验,它主要由两部分组成: (1)一个开发服务器,它基于 原生 ES 模块提供了丰富的内建功能 ,如速度…

    技术杂谈 2023年5月31日
    090
  • 2022年1-2月全球技术标准更新

    2021 年11 月12 日,欧亚经济委员会(EEC )的理事会发布了第130 号决定,主题为”在欧亚经济联盟关税区内进行强制性合格评定的产品进口到欧亚经济联盟关税区的…

    技术杂谈 2023年6月21日
    091
  • SatBox620 Info

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年5月31日
    084
  • TFS 升级错误一则 TF400654

    升级后报 [错误] TF400654: 无法配置规划工具。以下元素包含错误: BugWorkItems/BugWorkItems。TF400506: 此元素将定义表示 Bug 或缺…

    技术杂谈 2023年5月31日
    085
  • PHP获取cookie、Token、模拟登录、抓取数据、解析生成json

    本文介绍使用PHP获取cookie,获取Token、以及模拟登录、然后抓取数据、最后解析生成json的的过程。 设置Cookie路径 1、打开页面,获取COOKIEJAR,以及 t…

    技术杂谈 2023年5月31日
    085
  • 2022.13 三维运动追踪

    北京冬奥会主题歌演唱环节,几百个孩子手举发光的和平鸽在鸟巢中央奔跑,孩子跑过,脚下的屏幕随即亮起雪花。有人以为雪花是提前做出来的,有人以为地屏有触感,踩到就有反应。其实,这种实时交…

    技术杂谈 2023年5月30日
    077
  • MySQL中的事务和MVCC

    本篇博客参考掘金小册——MySQL 是怎样运行的:从根儿上理解 MySQL 以及极客时间——MySQL实战45讲。 虽然我们不是DBA,可能对数据库没那么了解,但是对于数据库中的索…

    技术杂谈 2023年7月25日
    087
  • 微信开发者工具,文件如何自动保存?

    我们用微信开发者工具开发小程序的时候,经常遇到文件不自动保存的情况,需要手动 Ctrl + S,很烦人。 怎么自动保存呢? 按照如下步骤:1、设置2、编辑器设置3、勾选&#8221…

    技术杂谈 2023年5月31日
    091
  • ARM 64位系统下运行32位程序

    //运行程序须安装库dpkg –add-architecture armhfapt-get updateapt-get install libc6:armhf libs…

    技术杂谈 2023年6月1日
    099
  • Aerospike 安装

    Aerospike 安装 posted on2022-02-09 17:42 duanxz 阅读(65 ) 评论() 编辑 Original: https://www.cnblog…

    技术杂谈 2023年5月30日
    094
  • 实践GoF的设计模式:迭代器模式

    摘要:迭代器模式主要用在访问对象集合的场景,能够向客户端隐藏集合的实现细节。 有时会遇到这样的需求,开发一个模块,用于保存对象;不能用简单的数组、列表,得是红黑树、跳表等较为复杂的…

    技术杂谈 2023年5月31日
    099
  • 单例模式详解

    单例模式详解 1.1单例模式概述 单例模式(Singleton Pattern)指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点,属于创建型设计模式。 1.2单例模…

    技术杂谈 2023年6月21日
    096
  • 《Dual Attention Network for Scene Segmentation》论文笔记

    论文题目:《Dual Attention Network for Scene Segmentation》论文作者:Jun Fu, Jing Liu, Haijie Tian, an…

    技术杂谈 2023年6月21日
    078
  • 命令行传参是否只能针对main方法

    先上结论 命令行传参只能针对main方法而言,而且格式严格 这里在原有主类 test基础上创建了另一个类,名字为 testCMD,但里面创建的方法并不是main方法,在cmd内编译…

    技术杂谈 2023年7月25日
    052
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球