登录  /  注册
博主信息
博文 28
粉丝 0
评论 0
访问量 28975
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
vue基础及常用方法细说
G
原创
651人浏览过

vue 基础知识细说

基础:

  1. 引入并创建 vue 实例
    使用 vue 挂载实例的话,需要创建一个可以被vue接管的代码片段{{data中的数据对象}}

    什么是 data 中的数据对象,后面的文章会细说。
    html 代码之中的挂载点<p>{{words}}</p>

创建一个 vue 实例,因为 vue 是一个构造函数,所以需要利用new Vue()来创造

  1. // vue官方将vue实例成为vm
  2. // 创建一个vue实例
  3. const vm = new Vue({
  4. // 配置项
  5. // 1.声明一个挂载点(vue的作用域)
  6. el: ".app", //===document.querySelector(".app")选择器
  7. // 2.声明挂载点中的数据对象
  8. data: {
  9. words: "我是一个挂载点", //此处的words的内容会挂载到页面之中{{words}}
  10. },
  11. });
  12. // 外部访问data中的数据
  13. console.log(vm.$data.words);
  14. // 但是vue官方提供了一个更为简单的方法,可以实现数据(访问代理)
  15. // 我们就不再需要$data来声明要拿的是哪一个变量,可以直接:
  16. console.log(vm.words);

  1. 模板语法

    先来说一个 vue 指令:v-,以v-为前缀的自定义属性,这样的属性会被 vue 实例接管并解析它的值(js 表达式)

  1. <div class="app">
  2. <p v-html="words"></p>
  3. <p v-html="code"></p>
  4. <!-- vue还支持在html之中插入js表达式 -->
  5. <p>50+40={{50+40}}</p>
  6. <p>{{true?'我好舒服':'我好难受'}}</p>
  7. <!-- 还可以直接输出字符串 -->
  8. <p>{{'Hello World'.split('').reverse().join('')}}</p>
  9. </div>
  10. <script src="/homework/11/1112_homework/lib/vue.js"></script>
  11. <script>
  12. const vm = new Vue({
  13. el: ".app",
  14. data: {
  15. words: "其实我:v-html='words' === {{words}}",
  16. code: "其实我:v-html='code' === {{code}}",
  17. },
  18. });
  19. </script>

  1. 计算属性

    computeddata中的方法,但是可以单独写出来,filters也一样
    计算属性,就是讲所有属性统计出来,最后全部应用于某一个变量或者方法上。呈现的效果,类似于 CSS 多个属性叠加。

const str = "hello".split("").reveser().join("")

如果将这个计算属性写到 data 中, 那么这个属性变量在插值中渲染时必须当成函数
此时 html 标签内就不再是{{reverseword}},而需要使用{{reverseword()}}

  1. <!-- 最终这个属性会与data中的属性变量合并 -->
  2. <div class="app">
  3. <p>{{words+' ->我是data里面的word'}}</p>
  4. <p>{{reverseword+'->我是computer计算words属性的最终值'}}</p>
  5. </div>
  6. <script src="/homework/11/1112_homework/lib/vue.js"></script>
  7. <script>
  8. const str = "hello";
  9. console.log(str.split("").reverse().join(""));
  10. const vm = new Vue({
  11. el: ".app",
  12. data: {
  13. words: "ABCD",
  14. name: "GGGGGGGG",
  15. },
  16. // computed: {//可用可不用,但是为了语义化,推荐使用
  17. // 此时html标签内就不再是{{reverseword}},而需要使用{{reverseword()}}
  18. reverseword() {
  19. //一个函数,调用需要函数名()
  20. return this.words.split("").reverse().join("");
  21. },
  22. // },
  23. });
  24. // 不利用computed属性,可以直接写函数方法,也可以达到计算的功能
  25. </script>

  1. 过滤器

    filtersdata中的方法,但是可以单独写出来,
    下面演示通过定义一个过滤器,并调用它:

    调用方法:通过|后面跟过滤器方法来实现调用

<p>{{HELLO | toLowerCse}}</p>
创建一个过滤器:

  1. const vm = new Vue({
  2. el: ".app",
  3. data: {
  4. words: "ABCD",
  5. name: "GGGGGGGG",
  6. },
  7. computed:{reverseword() {
  8. return this.words.split("").reverse().join("");
  9. },
  10. },
  11. filters:{
  12. wordsToLowerCase(str){
  13. return str.toLowerCase();
  14. }
  15. }
  16. });
  17. </script>

调用实例:

  1. <p>{{hello | wordsToLowerCase}}</p>
  1. 侦听器

    vue 的侦听器watch其实就是原生 JS 的监听器addEventListener

add1(newVal,oldVal):

简单的累加器:

  1. const vm = new Vue({
  2. el: ".app",
  3. data: {
  4. add1: 0,
  5. add2: 0,
  6. res: 0,
  7. },
  8. // methods:定义所有的公共方法,在这里定义所有的你需要用到的函数
  9. methods: {
  10. add(x, y) {
  11. // 数值格式的字符串*1可以自动转为数值
  12. this.res = x * 1 + y * 1;
  13. },
  14. },
  15. watch: {
  16. add1(newVal, oldVal) {
  17. this.add(newVal, this.add2);
  18. },
  19. add2(newVal, oldVal) {
  20. this.add(newVal, this.add1);
  21. },
  22. },
  23. });

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:js已经很灵活了,vue又进一步加剧了这个
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学