当前位置: 首页 > news >正文

Django+Vue全栈开发项目入门(二)

Vue是一款用于构建用户界面的JavaScript渐进式框架,它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、响应式的、组件化的编程模型,有助于高效地开发用户界面。

环境准备

安装Node.js:Vue项目的构建和运行依赖于Node.js环境。可以从Node.js官网下载并安装Node.js,建议安装LTS版本以获得长期支持和稳定性。

验证Node.js安装:在命令行中输入node -vnpm -v,如果正确输出版本号,则表示Node.js和npm安装成功。

父子传递

在Vue.js中,父子组件之间的数据传递是开发过程中常见的需求。Vue提供了一套清晰的机制来实现这一功能,包括父组件向子组件传递数据(props)和子组件向父组件发送消息(事件)。

父组件向子组件传递数据(props)

在Vue中,父组件可以通过在子组件标签上使用自定义属性(即props)来传递数据给子组件。子组件通过props选项来声明它期望接收的数据。

<!-- 父组件 -->  
<template>  <div>  <ChildComponent :message="parentMessage" />  </div>  
</template>  <script>  
import ChildComponent from './ChildComponent.vue';  export default {  components: {  ChildComponent  },  data() {  return {  parentMessage: 'Hello from Parent!'  };  }  
};  
</script>

 

<!-- 子组件 -->  
<template>  <div>{{ message }}</div>  
</template>  <script>  
export default {  props: {  message: {  type: String,  required: true  }  }  
};  
</script>

在这个例子中,父组件通过message prop将parentMessage数据传递给子组件,子组件在模板中通过插值表达式{{ message }}来显示这个数据。

子组件向父组件发送消息(事件)

子组件可以通过触发自定义事件来向父组件发送消息。父组件可以在子组件标签上使用v-on指令(或简写形式@)来监听这些事件,并在事件触发时执行相应的处理函数。

<!-- 父组件 -->  
<template>  <div>  <ChildComponent @notify="handleNotify" />  </div>  
</template>  <script>  
import ChildComponent from './ChildComponent.vue';  export default {  components: {  ChildComponent  },  methods: {  handleNotify(payload) {  console.log('Received from child:', payload);  }  }  
};  
</script>
<!-- 子组件 -->  
<template>  <div>  <button @click="notifyParent">Notify Parent</button>  </div>  
</template>  <script>  
export default {  methods: {  notifyParent() {  this.$emit('notify', 'Hello from Child!');  }  }  
};  
</script>

在这个例子中,子组件有一个按钮,当点击按钮时,会调用notifyParent方法,该方法通过$emit触发一个名为notify的自定义事件,并传递一个字符串作为参数。父组件监听了这个事件,并在事件触发时执行handleNotify方法,打印出接收到的消息。

注意事项

props是单向的:父组件传递给子组件的数据(props)应该是单向流动的。子组件不应该直接修改props的值,因为这可能会导致父组件的状态变得不可预测。如果子组件需要基于props的值进行更改,它应该使用计算属性或本地数据属性来创建自己的副本。

事件命名:自定义事件的名称应该避免与HTML原生事件名称冲突,并且最好使用小写字母开头的驼峰命名法(如my-event在模板中监听时会自动转换为myEvent)。

使用.sync修饰符:虽然.sync修饰符在Vue 2.x中用于简化父子组件之间的双向绑定,但在Vue 3.x中已被移除。在Vue 3中,推荐使用v-model或自定义的prop和事件组合来实现类似的功能。

未完待续~~~

http://www.lryc.cn/news/469016.html

相关文章:

  • 【ubuntu改源】
  • SQLI LABS | Less-9 GET-Blind-Time based-Single Quotes
  • 【小白学机器学习24】 用例子来比较:无偏估计和有偏估计
  • C++在实际项目中的应用第二节:C++与网络编程
  • 依赖关系是危险的
  • ipguard与Ping32如何加密数据防止泄露?让企业信息更安全
  • gitlab 的备份与回复
  • 创建型模式-----建造者模式
  • 威胁 Windows 和 Linux 系统的新型跨平台勒索软件:Cicada3301
  • Go 语言基础教程:7.Switch 语句
  • mysql原理、部署mysql主从+读写分离、监控mysql主从脚本
  • 模型选择拟合
  • 文案语音图片视频管理分析系统-视频矩阵
  • ArcGIS计算落入面图层中的线的长度或面的面积
  • ctfshow-web入门-web172
  • Keep健身TV版 3.3.0 | 针对智能电视的健身塑形软件
  • 推荐一些关于计算机网络和 TCP/IP 协议的书籍
  • 生成式AI浪潮下的商业机遇与经济展望 —— 与互联网时代的比较
  • Go 标准库
  • AUTOSAR_EXP_ARAComAPI的6章笔记(5)
  • Photoshop中的混合模式公式详解
  • Vue 自定义指令 Directive 的高级使用与最佳实践
  • 万字图文实战:从0到1构建 UniApp + Vue3 + TypeScript 移动端跨平台开源脚手架
  • 在WebStorm遇到Error: error:0308010C:digital envelope routines::unsupported报错时的解决方案
  • 数据库产品中SQL注入防护功能应该包含哪些功能
  • Ribbon客户端负载均衡策略测试及其改进
  • linux网络编程5——Posix API和网络协议栈,使用TCP实现P2P通信
  • 低代码平台中的功能驱动开发:模块化与领域设计
  • HTTP和HTTPS基本概念,主要区别,应用场景
  • node.js使用Sequelize ORM操作数据库