经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Vue.js » 查看文章
分享Vue组件传值的几种常用方式(一)
来源:jb51  时间:2022/9/15 9:09:05  对本文有异议

前言

大家好,这个系列我们来讲解一下vue组件传值的几种常见方法和逻辑链路。最常见的vue组件传值分为三种,第一种是父向子传值,第二种是子向父传值,第三种是兄弟组件之间的传值,下面我们先就第一种情况来进行分析和编写。

第一种:父向子传值

父向子传值意思就是要把父组件里的值传递给子组件,方法是在子组件内部自定义一个props属性,通过props属性来完成父子组件之间的数据传输。

新建文件导入结构

首先我们在components文件夹之下新建两个文件分别是Father.vue和Son.vue,并在这两个文件中通过shift + "<" 键快速生成结构,如图

引入 注册 使用子组件

第二步,我们把Son作为子组件引入进父组件,并完成注册以及在template模板里使用Son的实例

  1. <template>
  2.  
  3. <div class="box2">
  4. <!-- 使用Son的实例 -->
  5. <Son></Son>
  6. </div>
  7.  
  8. </template>
  9.  
  10. <script>
  11. // 导入Son构造函数
  12. import Son from '@/components/Son.vue'
  13.  
  14. export default {
  15. // 在component中完成注册
  16. components: {
  17. Son,
  18. },
  19. }
  20. </script>
  21. <style lang="less"></style>

注意:这里style括号内设置lang="less",代表我们可以在style样式结构中使用less语句

子组件内部代码完善

第三步我们要在Son组件中完成我们自己的代码书写,首先我们可以在template模板中定义一个box盒子,里面放入几个标签,并在其内部放入插值表达式。接着我们要在子组件的导出模块中定义一个props自定义属性,这里我们采用数组的形式在其内部定义两个属性分别是'msg' 和 'age', 代码如下

  1. <template>
  2. <div class="box">
  3. <h2>
  4. 我是子组件,父组件给我传递的值是 ---{{ msg }}, 我今年
  5. <h3>{{ age }}</h3>
  6. 岁啦
  7. </h2>
  8. </div>
  9. </template>
  10.  
  11. <script>
  12. export default {
  13. props: ['msg', 'age'],
  14. }
  15. </script>
  16.  
  17. <style lang="less">
  18. .box {
  19. h2 {
  20. color: pink;
  21. }
  22. h3 {
  23. color: skyblue;
  24. }
  25. }
  26. </style>

父组件内部代码完善

在父组件中,我们需要在data区域中返回两个值,如图

同时在template模板中,我们可以定义一个标签,在其内部放入一个插值表达式检验父组件自身是否已经正确拿到值,

如图:

同时,在Son实例中,我们将利用v-bind方法给它动态绑定属性,属性名就是Son构造函数中的props自定义属性,值就是Father中data内部定义的值

代码如下:

  1. <template>
  2. <div class="box2">
  3. <!-- 使用Son的实例 -->
  4. <h1>我是父组件,我自身的值是--{{ dd }}</h1>
  5. <Son :msg="dd" :age="year"></Son>
  6. </div>
  7. </template>
  8.  
  9. <script>
  10. // 导入Son构造函数
  11. import Son from '@/components/Son.vue'
  12.  
  13. export default {
  14. // 在component中完成注册
  15. components: {
  16. Son,
  17. },
  18.  
  19. data() {
  20. return {
  21. dd: '加也加也',
  22. year: 15,
  23. }
  24. },
  25. }
  26. </script>
  27.  
  28. <style lang="less">
  29. .box2 {
  30. // 父组件自身内部标签
  31. h1 {
  32. color: orange;
  33. }
  34. }
  35. </style>

操作main.js文件

我们需要在main.js文件中导入父组件,取名为Father,并且在render区域将父组件的名字输入进去,

如图:

运行文件:

在终端里利用指令"npm run serve"来进行文件编译,打开第一个网站查看效果

效果:

这样我们就完成了整个父组件向子组件传值的流程

思路总结

到这里,我们来大致厘清一下具体实现步骤

第一步,将子组件导入到父组件中,并完成在父组件内部的注册和使用

第二步:在子组件中设置自定义属性props并为其添加几个字符串作为在父组件中的属性名

第三步:在子组件中的template模板中利用插值表达式来直观的演示我们调试过后的结果

第四步:在父组件中对data区域进行操作,return一个对象,提供渲染时所依赖的数据源

第五步,在父组件中的template模板中利用插值表达式来看父组件自身是否能接收到data中的值,并且为子组件的实例绑定动态属性

最后,在main.js中导入父组件,并且在render区域将父组件的名字输入进去,在终端里面利用指令"npm run serve"来进行文件编译,打开网站查看效果

到此这篇关于分享Vue组件传值的几种常用方式(一)的文章就介绍到这了,更多相关Vue组件传值内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号