IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> VUE进阶技巧 -> 正文阅读

[JavaScript知识库]VUE进阶技巧

父子组件双向数据绑定 v-model绑定组件

父组件需要在子组建v-model绑定值

  <div class="hello">
    <p>父亲组件</p>
    <p>DAD:{{ sendData }}</p>
    <Children v-model="sendData" />
  </div>
  data() {
    return {
      sendData: "父组件数据",
    };
  },

子组件则需要定义 props model

  <div class="childern">
    <p>子组件</p>
    <code>SON:我father对我说“{{ ABC }}</code>
    <button @click="_revert">回复</button>
    <Son />
  </div>
  model: {
    prop: "ABC", //单选框,复选框按钮等情况,他值是checked,input是value,或者是自定义的任何
    event: "customEvent", //这个事件名可以随意写,它实际上是规定了子组件要更新父组件值需要注册的方法
  },
  props: {
    ABC: String,
  },
  methods: {
    _revert() {
    	// 核心代码 发送model的事件
      this.$emit("customEvent", "success");
    },
  },

.sync修饰符 实现父子组件双向数据绑定

父组件

  <div class="hello">
    <Children :data.sync="Arrays" />
    <div v-for="item in Arrays" :key="item">{{item}}</div>
  </div>
  data() {
    return {
      Arrays: [1, 2, 3, 4, 5, 6],
    };
  },

子组件

  <div class="childern">
    <p>子组件</p>
    <button @click="_revert">修改</button>
    <Son />
  </div>
  props: {
    data: [Array, Object],
  },
  methods: {
    _revert() {
      this.$emit("update:data", [1, 2]);
    },
  },

Vue 异步组件

背景介绍:
随着项目越来越大,性能问题已经成为了困扰业务发展的重要因素。
功能不停地累加后,核心页面已经不堪重负,访问速度愈来愈慢。
业务发展、用户体验都非常迫切的需要释放页面的负载,提高页面加载速度。

简单实现

<script>
import Vue from "vue";
const Asycn1 = Vue.component("Asycn1", function (resolve) {
  setTimeout(function () {
    require(["./AsyncCom1"], resolve);
  }, 3000);
});
const Asycn2 = Vue.component("Asycn2", function (resolve) {
  require(["./AsyncCom2"], resolve);
});
export default {
  data: function () {
    return {
      show: false,
    };
  },
  components: {
    Asycn1,
    Asycn2,
  },
  methods: {
    toggle: function () {
      this.show = !this.show;
    },
  },
};
</script>

有错误状态和加载状态的异步组件

mport Loading from "./Loading.vue";
import Fail from "./Fail.vue";
const Asycn1 = () => ({
  // 需要加载的组件 (应该是一个 `Promise` 对象)
  component: import("./AsyncCom1.vue"),
  // 异步组件加载时使用的组件
  loading: Loading,
  // 加载失败时使用的组件
  error: Fail,
  // 展示加载时组件的延时时间。默认值是 200 (毫秒)
  delay: 200,
  // 如果提供了超时时间且组件加载也超时了,
  // 则使用加载失败时使用的组件。默认值是:`Infinity`
  timeout: 5000,
});

const Asycn2 = () => ({
  component: import(/** */ "./AsyncCom2.vue"),
  loading: Loading,
  error: Fail,
  delay: 300,
  timeout: 4000,
});
export default {
  data: function () {
    return {
      show: false,
    };
  },
  components: {
    Asycn1,
    Asycn2,
  },
  methods: {
    toggle: function () {
      this.show = !this.show;
    },
  },
};
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-16 18:44:30  更:2021-11-16 18:45:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/11 22:49:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码