VUE第七天

简介: VUE第七天

今天是2022年6月24日,是我学习vue的第七天


收集表单数据


若:<input type="text"/>,则v-model收集的是value值,用户输入的就是value值。

若:<input type="radio"/>,则v-model收集的是value值,且要给标签配置value值。

若:<input type="checkbox"/>

1.没有配置input的value属性,那么收集的就是checked(勾选 or 未勾选,是布尔值)

2.配置input的value属性:

(1)v-model的初始值是非数组,那么收集的就是checked(勾选 or 未勾选,是布尔值

(2)v-model的初始值是数组,那么收集的的就是value组成的数组

备注:v-model的三个修饰符:

lazy:失去焦点再收集数据

number:输入字符串转为有效的数字

trim:输入首尾空格过滤

<textarea v-model.lazy="userInfo.other"></textarea> <br /><br /> 懒加载


过滤器


<div id="root">
      <h2>显示格式化后的时间</h2>
      <!-- 计算属性实现 -->
      <h3>现在是:{{fmtTime}}</h3>
      <!-- methods实现 -->
      <h3>现在是:{{getFmtTime()}}</h3>
      <!-- 过滤器实现 -->
      <h3>现在是:{{time | timeFormater}}</h3>
      <!-- 过滤器实现(传参) -->
      <h3>现在是:{{time | timeFormater('YYYY_MM_DD') | mySlice}}</h3>
      <h3 :x="msg | mySlice">尚硅谷</h3>
    </div>
    <div id="root2">
      <h2>{{msg | mySlice}}</h2>
    </div>
  </body>
  <script type="text/javascript">
    Vue.config.productionTip = false
    //全局过滤器
    Vue.filter('mySlice',function(value){
      return value.slice(0,4)
    })
    new Vue({
      el:'#root',
      data:{
        time:1621561377603, //时间戳
        msg:'你好,尚硅谷'
      },
      computed: {
        fmtTime(){
          return dayjs(this.time).format('YYYY年MM月DD日 HH:mm:ss')
        }
      },
      methods: {
        getFmtTime(){
          return dayjs(this.time).format('YYYY年MM月DD日 HH:mm:ss')
        }
      },
      //局部过滤器
      filters:{
        timeFormater(value,str='YYYY年MM月DD日 HH:mm:ss'){
          // console.log('@',value)
          return dayjs(value).format(str)
        }
      }
    })
    new Vue({
      el:'#root2',
      data:{
        msg:'hello,atguigu!'
      }
    })
  </script>


内置指令


我们学过的指令:
        v-bind: 单向绑定解析表达式, 可简写为 :xxx
        v-model: 双向数据绑定
        v-for: 遍历数组/对象/字符串
        v-on: 绑定事件监听, 可简写为@
        v-if: 条件渲染(动态控制节点是否存存在)
        v-else: 条件渲染(动态控制节点是否存存在)
        v-show: 条件渲染 (动态控制节点是否展示)
        v-text指令:
  1.作用:向其所在的节点中渲染文本内容。
  2.与插值语法的区别:v-text会替换掉节点中的内容,{{xx}}则不会。
        v-html指令:
  1.作用:向指定节点中渲染包含html结构的内容。
  2.与插值语法的区别:
                (1).v-html会替换掉节点中所有的内容,{{xx}}则不会。
                (2).v-html可以识别html结构。
  3.严重注意:v-html有安全性问题!!!!
                (1).在网站上动态渲染任意HTML是非常危险的,容易导致XSS攻击。
                (2).一定要在可信的内容上使用v-html,永不要用在用户提交的内容上!
            v-cloak指令(没有值):
                1.本质是一个特殊属性,Vue实例创建完毕并接管容器后,会删掉v-cloak属性。
                2.使用css配合v-cloak可以解决网速慢时页面展示出{{xxx}}的问题。
            v-once指令:
                1.v-once所在节点在初次动态渲染后,就视为静态内容了。
                2.以后数据的改变不会引起v-once所在结构的更新,可以用于优化性能。
            v-pre指令:
                1.跳过其所在节点的编译过程。
                2.可利用它跳过:没有使用指令语法、没有使用插值语法的节点,会加快编译。



相关文章
|
3天前
|
存储 JavaScript
Vue当前时间与接口返回时间的判断
Vue当前时间与接口返回时间的判断
8 0
|
3天前
|
JavaScript 前端开发
Vue生成Canvas二维码
Vue生成Canvas二维码
8 0
|
3天前
|
JavaScript 前端开发 开发者
new Vue() 发生了什么
new Vue() 发生了什么
10 1
|
1天前
|
JavaScript
vue打印v-model 的值
vue打印v-model 的值
|
1天前
|
JavaScript
vue知识点
vue知识点
4 1
|
1天前
|
JavaScript
Vue实战-组件通信
Vue实战-组件通信
4 0
|
1天前
|
JavaScript
Vue实战-将通用组件注册为全局组件
Vue实战-将通用组件注册为全局组件
5 0
|
2天前
|
JavaScript 前端开发
vue的论坛管理模块-文章评论02
vue的论坛管理模块-文章评论02
|
2天前
|
JavaScript Java
vue的论坛管理模块-文章查看-01
vue的论坛管理模块-文章查看-01
|
2天前
|
JavaScript
vue页面加载时同时请求两个接口
vue页面加载时同时请求两个接口