美文网首页
初识前端笔记之二

初识前端笔记之二

作者: Mortimey_yt | 来源:发表于2020-08-17 11:22 被阅读0次

使用 v-html 指令用于输出 html 代码
v-html 指令

<div id="app">
<div v-html="message"></div>
</div>

<script>
  new Vue({
  el: '#app',
  data: {
  message: '<h1>菜鸟教程</h1>'
}
})
</script>

html几个重要标签用法(div,p,span,ul,li,dl,dt,dd,a,img,h,strong,em)

一段时间以来,发现有很多人XHTML都不会用,不光是普通的初学者,有的程序员都不是很清楚该怎么写这个XHTML,我这里呢算是把一些常见的应用问题做一个总结,也算能使得大家能在沟通,合作上能形成默契。

XHTML里有很多的标签,但是经常用到的也就是那么几个,也只要掌握这几个也就可以了。下面我们一一列举:div,p,span,ul,li,dl,dt,dd,a,img,h,strong,em

div 在我的脑子里我一直把他想作是一个瓶子或是箱子,我的感觉它挺硬的。这个div没有什么特性的意义,可以使用在很多地方,也就是说他可以装不同的东西。他的正确的写法是< div> < /div> 必需要有封口。大家都用来做布局之用,也有用来作为存放文章形成段落,实际上,这个做法并不是很好,因为作为文章的分段自然有一个特定的标签来用。那就是下面要讲的< p> < /p> 标签,不过用DIV来再整体的包住所有的段落。这是非常实用的。

p 这是一个有特定语义的标签,表示段落,是用来区分段落的。在大部分的浏览器中对P基本上都有一个上下的边距。但是没有行首缩进,因为行首缩进只是表示段落的方式但是不是一定或是必需的。所以在用P标签的时候如果需要可以针对P设定一下行首缩进,我是推荐在文章以外的地方不要使用P,因为P是有一定语义的,如果用在别的地方恐不合适。正确的写法是< p> < /p>

span 这也是一个非常常用的标签,这个标签可以说与div很像,没有什么特定的意义,只是他是一个级联元素,不是块级元素。我一直把它看作是一个袋子,他不像箱子那样可以有自己的宽高,他的宽高只能随着内容的多少而定,所以很像是袋子。这个标签与div正好互补。

ul,li 这是一个列表,在列表中,除了UL还OL,不过我觉得OL有点像是鸡肋。因为UL通过CSS定义一样可以有OL的数字排序效果。所以一般我不推荐使用 OL,有UL就可以了。UL是块级的,他的子级li也是块级标签。正确的写法是< ul> < li> < /li> < /ul> LI标签是被UL标签包裹的,在UL标签里可以有无数个LI标签,LI标签不能独立使用。并且LI标签一定要封口,这不光是美观问题,对于后期的维护也很有好处。很多程序员都不喜欢把这个LI封口。UL列表的用处主要是列举出一维的,同一类型的数据。具体的比如使用在菜单上,文章中列数的一些条例等等。在列表中有一种特别的形式与UL是不一样的。那就是下面的DL

dl,dt,dd 这是一个很特别的三个标签的组合。这里的DT是指标题,DD是指内容。DL是包课他们的容器。正确的写法是< dl> < dt> < /dt> < dd> < /dd> < /dl> 在DL里可以有很多组的DT,DD,当出现很多组的时候尽量是一个DT配一个DD,如果DD中内容很多,可以在DD里加P标签配合使用。DL列表是一个非常好的列表形式,可以多加利用。

a 这表示链接,是一个特定属性的,也是网页中最为神奇的标签。因为它才让无数的网页都连在了一起。正确的写法是:< a href=" " title=" " > < /a> 其中的href是表示目标地址,TITLE是鼠标悬停提示文字,这是可有可无的。但是有必是利大于无。

img 这是图片标签,也是个特定属性的标签。正常写法是:< img src=" " alt=" " title=" " /> 这里的src是目标地址,ALT与TITLE是替换文字,ALT是 IE特定的,TITLE是其它浏览器的通用的。不过记得后面的反斜线那是一定要有的。

H 这是一个系列的标签,从H1到H6,一共六个,有人说太少了,有人说正好用,有人说用不了这么多。反正我是觉得差不多。正确写法是:< h> < /h> 主要是用来存放标题,也有一些朋友用来作它用,个人觉得这个标签还是让他安生一点,就让他做标题的作用。这六个标签之间最好不要出现什么相互包含的事。

strong 这个意思是着重,这是有语义的,作用也很简单。至于样工,是加粗着重,还是用色彩表明着重,那都是自行选择。正确的写法是< strong> < /strong>

em 这个与strong很像,是表示强调。一般浏览器的默认值是斜体。使用方式与strong一样。写法是:< em> < /em>

  1.  v-bind:class  
    

class 与 style 是 HTML 元素的属性,用于设置元素的样式,我们可以用 v-bind 来设置样式属性

  <div id="app">
  <div v-bind:class="{ 'active': isActive }"></div>
  </div>

  <script>
  new Vue({
  el: '#app',
  data: {
  isActive: true
  }
})
  </script>
<style>
.active {
width: 100px;
height: 100px;
background: green;
}
</style>  // 相当于 <div class="active"></div>

②我们也可以在对象中传入更多属性用来动态切换多个 class 。

<div class="static"
 v-bind:class="{ 'active' : isActive, 'text-danger' : hasError }">
</div>

③我们也可以直接绑定数据里的一个对象:

  <div id="app">
  <div v-bind:class="classObject"></div>
  </div>

  <script>
  new Vue({
  el: '#app',
  data: {
  classObject: {
  active: true,
  'text-danger': true
}
  }
})
</script>
<style>
.active {
width: 100px;
height: 100px;
background: green;
}
.text-danger {
background: red;
 }
</style>

④绑定返回对象的计算属性。这是一个常用且强大的模式:

 <style>
.base {
  width: 100px;
  height: 100px;
}

.active {
   background: green;
}

.text-danger {
  background: red;
}
</style>
<div id="app">
<div v-bind:class="classObject"></div>
</div>
<script>

new Vue({
el: '#app',
data: {
isActive: true,
error: {
  value: true,
  type: 'fatal'
}
},
computed: {
classObject: function () {
  return {
base: true,
    active: this.isActive && !this.error.value,
    'text-danger': this.error.value && this.error.type === 'fatal',
  }
}
}
})
</script>

⑤ 我们可以把一个数组传给 v-bind:class

<style>
.active {
width: 100px;
height: 100px;
background: green;
}
 .text-danger {
background: red;
}
</style>
<div id="app">
<div v-bind:class="[activeClass, errorClass]"></div>
</div>

<script>
new Vue({
el: '#app',
data: {
activeClass: 'active',
errorClass: 'text-danger'
}
})
</script>

⑥还可以使用三元表达式来切换列表中的 class :
errorClass 是始终存在的,isActive 为 true 时添加 activeClass 类:

<div v-bind:class="[errorClass ,isActive ? activeClass : '']"></div>

v-bind:style (内联样式)
① 我们可以在 v-bind:style 直接设置样式:

<div id="app">
<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }">菜鸟教程</div>
</div>

v-bind
v-bind:value
v-model
v-bind:id(<div v-bind:id="'list-' + id">菜鸟教程</div>)
② v-bind:style 可以使用数组将多个样式对象应用到一个元素上:

<div id="app">
<div v-bind:style="[baseStyles, overridingStyles]">菜鸟教程                </div>
</div>

③ 也可以直接绑定到一个样式对象,让模板更清晰:

<div id="app">
<div v-bind:style="styleObject">菜鸟教程</div>
</div>

注意:当 v-bind:style 使用需要特定前缀的 CSS 属性时,如 transform ,Vue.js 会自动侦测并添加相应的前缀。

5
<pre><a v-bind:href="url">菜鸟教程</a></pre> // 这里 href 是参数,告知 v-bind 指令将该元素的 href 属性与表达式 url 的值绑定
v-on 指令,它用于监听 DOM 事件:

  <a v-on:click="doSomething"> // 在这里参数是监听的事件名。
    
  <div id="app">
<p>{{ message }}</p>
<button v-on:click="reverseMessage">反转字符串</button>
</div>

  <script>
  new Vue({
    el: '#app',
    data: {
      message: 'Runoob!'
    },
    methods: {
      reverseMessage: function () {
      this.message = this.message.split('').reverse().join('')
    }
    }
  })
    </script>

修饰符是以半角句号 . 指明的特殊后缀,用于指出一个指令应该以特殊方式绑定。例如,.prevent 修饰符告诉 v-on 指令对于触发的事件调用 event.preventDefault():********************************

<form v-on:submit.prevent="onSubmit"></form>

过滤器

v-bind 缩写

<!-- 完整语法 -->
<a v-bind:href="url"></a>
<!-- 缩写 -->
<a :href="url"></a>

v-on 缩写

<!-- 完整语法 -->
<a v-on:click="doSomething"></a>
<!-- 缩写 -->
<a @click="doSomething"></a>

methods 和 computed,效果上两个都是一样的,但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。而使用 methods ,在重新渲染的时候,函数总会重新调用执行,可以说使用 computed 性能会更好,但是如果你不希望缓存,你可以使用 methods 属性。

    computed: {
    // 计算属性的 getter
    reversedMessage: function () {
     // `this` 指向 vm 实例
    return this.message.split('').reverse().join('')
    }
    }
    
  methods: {
  reversedMessage2: function () {
  return this.message.split('').reverse().join('')
  }
  }

computed 属性默认只有 getter ,不过在需要时你也可以提供一个 setter :

var vm = new Vue({
el: '#app',
data: {
name: 'Google',
url: 'http://www.google.com'
},
computed: {
site: {
  // getter
  get: function () {
    return this.name + ' ' + this.url
  },
  // setter
  set: function (newValue) {
    var names = newValue.split(' ')
    this.name = names[0]
    this.url = names[names.length - 1]
  }
}
}
})
// 调用 setter, vm.name 和 vm.url 也会被对应更新
vm.site = '菜鸟教程 http://www.runoob.com';
document.write('name: ' + vm.name);
document.write('<br>');
document.write('url: ' + vm.url);

从实例运行结果看在运行 vm.site = '菜鸟教程 http://www.runoob.com'; 时,setter 会被调用, vm.name 和 vm.url 也会被对应更新。

  1. 监听
    实例一

    <div id = "app">
    <p style = "font-size:25px;">计数器: {{ counter }}</p>
    <button @click = "counter++" style = "font-size:25px;">点    我</button>
    </div>
    <script type = "text/javascript">
    var vm = new Vue({
    el: '#app',
    data: {
    counter: 1
    }
    });
    vm.$watch('counter', function(nval, oval) {
    alert('计数器值的变化 :' + oval + ' 变为 ' + nval + '!');
    });
    </script>
    

实例二

  <div id = "computed_props">
千米 : <input type = "text" v-model = "kilometers">
米 : <input type = "text" v-model = "meters">
</div>
<p id="info"></p>
<script type = "text/javascript">
var vm = new Vue({
el: '#computed_props',
data: {
    kilometers : 0,
    meters:0
},
methods: {
},
computed :{
},
watch : {
    kilometers:function(val) {
        this.kilometers = val;
        this.meters = this.kilometers * 1000
    },
    meters : function (val) {
        this.kilometers = val/ 1000;
        this.meters = val;
    }
}
});
// $watch 是一个实例方法
vm.$watch('kilometers', function (newValue, oldValue) {
// 这个回调将在 vm.kilometers 改变后调用
document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
})
</script>

!!!!!
// $$watch是一个实例对象
vm.$watch('监听参数', function(nval, oval) {
});
watch : {
kilometers:function(val) {
this.kilometers = val;
this.meters = this.kilometers * 1000
},
meters : function (val) {
this.kilometers = val/ 1000;
this.meters = val;
}
} 这个两者写法区别.

相关文章

  • 初识前端笔记之二

    使用 v-html 指令用于输出 html 代码v-html 指令 html几个重要标签用法(div,p,span...

  • 初识前端笔记之三

    v-model① input 和 textarea 元素中使用 v-model 实现双向数据绑定 二.当然, 还有...

  • 前端文章系列

    【前端】从0.1开始,创建第一个项目 【前端】初识HTML 【前端】HTML标签 【前端】HTML属性 【前端】C...

  • 前端入门系列

    前端HTML & CSS 基础入门(1)初识 前端HTML & CSS 基础入门(2)段落及文本 前端HTML &...

  • 初识前端

    前端学习路线:引自https://blog.csdn.net/u011047006/article/details...

  • 初识前端

    html标签 1、语气强调 表示强调, 表示更强烈的强调。并且在浏览器中 默认用斜体...

  • 初识前端

    了解行情 开发准备 了解行情 IT行业自出现以来,便一直呈现蓬勃发展的状态,程序猿、攻城狮等词汇已然不是什么陌生的...

  • 初识前端

    前端工程师的主要工作内容: 依据设计图,完成页面的实现和交互功能。 前端工程师主要做的事情: ①页面实现 ②页面维...

  • 初识前端

    前端工程师也称web前端工程师,主要是做网站,网页。它随着web的发展,细分出来的行业。web前端开发技术主...

  • 初识前端

    前端 结构 表现 行为 什么是网页 一 HTML的基本结构

网友评论

      本文标题:初识前端笔记之二

      本文链接:https://www.haomeiwen.com/subject/xzwvdktx.html